/**
  * Method for reading sequence of Objects from parser stream.
  *
  * @since 1.8
  */
 public <T> MappingIterator<T> readValues(URL src) throws IOException, JsonProcessingException {
   JsonParser jp = _jsonFactory.createJsonParser(src);
   if (_schema != null) {
     jp.setSchema(_schema);
   }
   DeserializationContext ctxt = _createDeserializationContext(jp, _config);
   return new MappingIterator<T>(_valueType, jp, ctxt, _findRootDeserializer(_config, _valueType));
 }
 protected JsonNode _bindAndCloseAsTree(JsonParser jp)
     throws IOException, JsonParseException, JsonMappingException {
   if (_schema != null) {
     jp.setSchema(_schema);
   }
   try {
     return _bindAsTree(jp);
   } finally {
     try {
       jp.close();
     } catch (IOException ioe) {
     }
   }
 }
 protected Object _bindAndClose(JsonParser jp)
     throws IOException, JsonParseException, JsonMappingException {
   if (_schema != null) {
     jp.setSchema(_schema);
   }
   try {
     Object result;
     JsonToken t = _initForReading(jp);
     if (t == JsonToken.VALUE_NULL) {
       if (_valueToUpdate == null) {
         result = _findRootDeserializer(_config, _valueType).getNullValue();
       } else {
         result = _valueToUpdate;
       }
     } else if (t == JsonToken.END_ARRAY || t == JsonToken.END_OBJECT) {
       result = _valueToUpdate;
     } else {
       DeserializationContext ctxt = _createDeserializationContext(jp, _config);
       JsonDeserializer<Object> deser = _findRootDeserializer(_config, _valueType);
       if (_unwrapRoot) {
         result = _unwrapAndDeserialize(jp, ctxt, _valueType, deser);
       } else {
         if (_valueToUpdate == null) {
           result = deser.deserialize(jp, ctxt);
         } else {
           deser.deserialize(jp, ctxt, _valueToUpdate);
           result = _valueToUpdate;
         }
       }
     }
     return result;
   } finally {
     try {
       jp.close();
     } catch (IOException ioe) {
     }
   }
 }