diff --git a/src/main/java/com/fasterxml/jackson/databind/ObjectReader.java b/src/main/java/com/fasterxml/jackson/databind/ObjectReader.java
index b64a0527ee..bfd29fa486 100644
--- a/src/main/java/com/fasterxml/jackson/databind/ObjectReader.java
+++ b/src/main/java/com/fasterxml/jackson/databind/ObjectReader.java
@@ -13,12 +13,12 @@
import com.fasterxml.jackson.core.filter.TokenFilter.Inclusion;
import com.fasterxml.jackson.core.type.ResolvedType;
import com.fasterxml.jackson.core.type.TypeReference;
-
import com.fasterxml.jackson.databind.cfg.ContextAttributes;
import com.fasterxml.jackson.databind.cfg.DatatypeFeature;
import com.fasterxml.jackson.databind.deser.DataFormatReaders;
import com.fasterxml.jackson.databind.deser.DefaultDeserializationContext;
import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler;
+import com.fasterxml.jackson.databind.deser.std.CollectionDeserializer;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.TreeTraversingParser;
import com.fasterxml.jackson.databind.type.TypeFactory;
@@ -77,7 +77,7 @@ public class ObjectReader
protected final boolean _unwrapRoot;
/**
- * Filter to be consider for JsonParser.
+ * Filter to be consider for JsonParser.
* Default value to be null as filter not considered.
*/
private final TokenFilter _filter;
@@ -192,7 +192,7 @@ protected ObjectReader(ObjectMapper mapper, DeserializationConfig config,
_unwrapRoot = config.useRootWrapping();
_rootDeserializer = _prefetchRootDeserializer(valueType);
- _dataFormatReaders = null;
+ _dataFormatReaders = null;
_filter = null;
}
@@ -401,7 +401,7 @@ public ObjectReader with(DeserializationFeature first,
DeserializationFeature... other)
{
return _with(_config.with(first, other));
- }
+ }
/**
* Method for constructing a new reader instance that is configured
@@ -409,14 +409,14 @@ public ObjectReader with(DeserializationFeature first,
*/
public ObjectReader withFeatures(DeserializationFeature... features) {
return _with(_config.withFeatures(features));
- }
+ }
/**
* Method for constructing a new reader instance that is configured
* with specified feature disabled.
*/
public ObjectReader without(DeserializationFeature feature) {
- return _with(_config.without(feature));
+ return _with(_config.without(feature));
}
/**
@@ -426,7 +426,7 @@ public ObjectReader without(DeserializationFeature feature) {
public ObjectReader without(DeserializationFeature first,
DeserializationFeature... other) {
return _with(_config.without(first, other));
- }
+ }
/**
* Method for constructing a new reader instance that is configured
@@ -434,7 +434,7 @@ public ObjectReader without(DeserializationFeature first,
*/
public ObjectReader withoutFeatures(DeserializationFeature... features) {
return _with(_config.withoutFeatures(features));
- }
+ }
/*
/**********************************************************************
@@ -460,7 +460,7 @@ public ObjectReader with(DatatypeFeature feature) {
*/
public ObjectReader withFeatures(DatatypeFeature... features) {
return _with(_config.withFeatures(features));
- }
+ }
/**
* Method for constructing a new reader instance that is configured
@@ -469,7 +469,7 @@ public ObjectReader withFeatures(DatatypeFeature... features) {
* @since 2.14
*/
public ObjectReader without(DatatypeFeature feature) {
- return _with(_config.without(feature));
+ return _with(_config.without(feature));
}
/**
@@ -480,7 +480,7 @@ public ObjectReader without(DatatypeFeature feature) {
*/
public ObjectReader withoutFeatures(DatatypeFeature... features) {
return _with(_config.withoutFeatures(features));
- }
+ }
/*
/**********************************************************
@@ -511,7 +511,7 @@ public ObjectReader with(JsonParser.Feature feature) {
*/
public ObjectReader withFeatures(JsonParser.Feature... features) {
return _with(_config.withFeatures(features));
- }
+ }
/**
* Method for constructing a new reader instance that is configured
@@ -522,7 +522,7 @@ public ObjectReader withFeatures(JsonParser.Feature... features) {
* @return Reader instance with specified feature disabled
*/
public ObjectReader without(JsonParser.Feature feature) {
- return _with(_config.without(feature));
+ return _with(_config.without(feature));
}
/**
@@ -591,7 +591,7 @@ public ObjectReader with(FormatFeature feature) {
*/
public ObjectReader withFeatures(FormatFeature... features) {
return _with(_config.withFeatures(features));
- }
+ }
/**
* Method for constructing a new reader instance that is configured
@@ -600,7 +600,7 @@ public ObjectReader withFeatures(FormatFeature... features) {
* @since 2.7
*/
public ObjectReader without(FormatFeature feature) {
- return _with(_config.without(feature));
+ return _with(_config.without(feature));
}
/**
@@ -620,8 +620,8 @@ public ObjectReader withoutFeatures(FormatFeature... features) {
*/
/**
- * Convenience method to bind from {@link JsonPointer}.
- * {@link JsonPointerBasedFilter} is registered and will be used for parsing later.
+ * Convenience method to bind from {@link JsonPointer}.
+ * {@link JsonPointerBasedFilter} is registered and will be used for parsing later.
* @since 2.6
*/
public ObjectReader at(final String pointerExpr) {
@@ -648,7 +648,7 @@ public ObjectReader at(final JsonPointer pointer) {
*/
public ObjectReader with(DeserializationConfig config) {
return _with(config);
- }
+ }
/**
* Method for constructing a new instance with configuration that uses
@@ -776,7 +776,7 @@ public ObjectReader forType(JavaType valueType)
}
return _new(this, _config, valueType, rootDeser,
_valueToUpdate, _schema, _injectableValues, det);
- }
+ }
/**
* Method for constructing a new reader instance that is configured
@@ -789,7 +789,7 @@ public ObjectReader forType(JavaType valueType)
*/
public ObjectReader forType(Class> valueType) {
return forType(_config.constructType(valueType));
- }
+ }
/**
* Method for constructing a new reader instance that is configured
@@ -802,7 +802,7 @@ public ObjectReader forType(Class> valueType) {
*/
public ObjectReader forType(TypeReference> valueTypeRef) {
return forType(_config.getTypeFactory().constructType(valueTypeRef.getType()));
- }
+ }
/**
* @deprecated since 2.5 Use {@link #forType(JavaType)} instead
@@ -818,7 +818,7 @@ public ObjectReader withType(JavaType valueType) {
@Deprecated
public ObjectReader withType(Class> valueType) {
return forType(_config.constructType(valueType));
- }
+ }
/**
* @deprecated since 2.5 Use {@link #forType(Class)} instead
@@ -834,11 +834,11 @@ public ObjectReader withType(java.lang.reflect.Type valueType) {
@Deprecated
public ObjectReader withType(TypeReference> valueTypeRef) {
return forType(_config.getTypeFactory().constructType(valueTypeRef.getType()));
- }
+ }
/**
* Method for constructing a new instance with configuration that
- * updates passed Object (as root value), instead of constructing
+ * updates passed Object (as root value), instead of constructing
* a new value.
*
* Note that the method does NOT change state of this reader, but
@@ -1294,6 +1294,139 @@ public T readValue(JsonParser p, JavaType valueType) throws IOException {
return (T) forType(valueType).readValue(p);
}
+ @SuppressWarnings("unchecked")
+ public List