Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/main/java/com/fasterxml/jackson/databind/ObjectMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -1274,6 +1274,7 @@ public <T> T readValue(File src, Class<T> valueType) throws IOException
@SuppressWarnings({ "unchecked" })
public <T> T readValue(File src, TypeReference<T> valueTypeRef) throws IOException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt, _streamFactory.createParser(ctxt, src),
_typeFactory.constructType(valueTypeRef));
Expand All @@ -1295,6 +1296,7 @@ public <T> T readValue(File src, TypeReference<T> valueTypeRef) throws IOExcepti
public <T> T readValue(File src, JavaType valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt, _streamFactory.createParser(ctxt, src), valueType);
}
Expand All @@ -1321,6 +1323,7 @@ public <T> T readValue(File src, JavaType valueType)
public <T> T readValue(URL src, Class<T> valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueType));
Expand All @@ -1332,6 +1335,7 @@ public <T> T readValue(URL src, Class<T> valueType)
@SuppressWarnings({ "unchecked" })
public <T> T readValue(URL src, TypeReference<T> valueTypeRef) throws IOException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueTypeRef));
Expand Down Expand Up @@ -1364,6 +1368,7 @@ public <T> T readValue(URL src, JavaType valueType) throws IOException
public <T> T readValue(String content, Class<T> valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("content", content);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, content), _typeFactory.constructType(valueType));
Expand All @@ -1384,6 +1389,7 @@ public <T> T readValue(String content, Class<T> valueType)
@SuppressWarnings({ "unchecked" })
public <T> T readValue(String content, TypeReference<T> valueTypeRef) throws IOException
{
assertNotNull("content", content);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, content), _typeFactory.constructType(valueTypeRef));
Expand All @@ -1405,6 +1411,7 @@ public <T> T readValue(String content, TypeReference<T> valueTypeRef) throws IOE
public <T> T readValue(String content, JavaType valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("content", content);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, content), valueType);
Expand All @@ -1414,6 +1421,7 @@ public <T> T readValue(String content, JavaType valueType)
public <T> T readValue(Reader src, Class<T> valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueType));
Expand All @@ -1423,6 +1431,7 @@ public <T> T readValue(Reader src, Class<T> valueType)
public <T> T readValue(Reader src, TypeReference<T> valueTypeRef)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueTypeRef));
Expand All @@ -1432,6 +1441,7 @@ public <T> T readValue(Reader src, TypeReference<T> valueTypeRef)
public <T> T readValue(Reader src, JavaType valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), valueType);
Expand All @@ -1441,6 +1451,7 @@ public <T> T readValue(Reader src, JavaType valueType)
public <T> T readValue(InputStream src, Class<T> valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueType));
Expand All @@ -1450,6 +1461,7 @@ public <T> T readValue(InputStream src, Class<T> valueType)
public <T> T readValue(InputStream src, TypeReference<T> valueTypeRef)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueTypeRef));
Expand All @@ -1459,6 +1471,7 @@ public <T> T readValue(InputStream src, TypeReference<T> valueTypeRef)
public <T> T readValue(InputStream src, JavaType valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), valueType);
Expand All @@ -1468,6 +1481,7 @@ public <T> T readValue(InputStream src, JavaType valueType)
public <T> T readValue(byte[] src, Class<T> valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueType));
Expand All @@ -1477,6 +1491,7 @@ public <T> T readValue(byte[] src, Class<T> valueType)
public <T> T readValue(byte[] src, int offset, int len, Class<T> valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src, offset, len), _typeFactory.constructType(valueType));
Expand All @@ -1486,6 +1501,7 @@ public <T> T readValue(byte[] src, int offset, int len, Class<T> valueType)
public <T> T readValue(byte[] src, TypeReference<T> valueTypeRef)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueTypeRef));
Expand All @@ -1495,6 +1511,7 @@ public <T> T readValue(byte[] src, TypeReference<T> valueTypeRef)
public <T> T readValue(byte[] src, int offset, int len, TypeReference<T> valueTypeRef)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src, offset, len), _typeFactory.constructType(valueTypeRef));
Expand All @@ -1504,6 +1521,7 @@ public <T> T readValue(byte[] src, int offset, int len, TypeReference<T> valueTy
public <T> T readValue(byte[] src, JavaType valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), valueType);
Expand All @@ -1514,6 +1532,7 @@ public <T> T readValue(byte[] src, int offset, int len,
JavaType valueType)
throws IOException, JsonParseException, JsonMappingException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src, offset, len), valueType);
Expand All @@ -1522,6 +1541,7 @@ public <T> T readValue(byte[] src, int offset, int len,
@SuppressWarnings("unchecked")
public <T> T readValue(DataInput src, Class<T> valueType) throws IOException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), _typeFactory.constructType(valueType));
Expand All @@ -1530,11 +1550,18 @@ public <T> T readValue(DataInput src, Class<T> valueType) throws IOException
@SuppressWarnings("unchecked")
public <T> T readValue(DataInput src, JavaType valueType) throws IOException
{
assertNotNull("src", src);
DefaultDeserializationContext ctxt = createDeserializationContext();
return (T) _readMapAndClose(ctxt,
_streamFactory.createParser(ctxt, src), valueType);
}

private void assertNotNull(String paramName, Object src) {
if (src==null){
throw new IllegalArgumentException(paramName + " is null");
}
}

/*
/**********************************************************************
/* Public API: serialization (mapping from Java types to external format)
Expand Down
12 changes: 12 additions & 0 deletions src/test/java/com/fasterxml/jackson/databind/ObjectMapperTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -242,4 +242,16 @@ public void testDataInputViaMapper() throws Exception
.readTree(input);
assertNotNull(n);
}

public void testReadValueWithNullInputStream() throws Exception {
ObjectMapper m = new ObjectMapper();
InputStream is = null;
try {
m.readValue(is, Object.class);
} catch (IllegalArgumentException e) {
assertEquals("src is null", e.getMessage());
return;
}
fail("Specific exception expected");
}
}