diff --git a/solr/src/java/org/apache/solr/handler/XmlUpdateRequestHandler.java b/solr/src/java/org/apache/solr/handler/XmlUpdateRequestHandler.java index 475771924d5..7dffe43c599 100644 --- a/solr/src/java/org/apache/solr/handler/XmlUpdateRequestHandler.java +++ b/solr/src/java/org/apache/solr/handler/XmlUpdateRequestHandler.java @@ -23,6 +23,7 @@ import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.XML; import org.apache.solr.core.SolrCore; +import org.apache.solr.request.LocalSolrQueryRequest; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.request.SolrQueryRequestBase; import org.apache.solr.response.SolrQueryResponse; @@ -117,15 +118,13 @@ public class XmlUpdateRequestHandler extends ContentStreamHandlerBase { */ @Deprecated public void doLegacyUpdate(Reader input, Writer output) { - try { - SolrCore core = SolrCore.getSolrCore(); + SolrCore core = SolrCore.getSolrCore(); + SolrQueryRequest req = new LocalSolrQueryRequest(core, new HashMap()); + try { // Old style requests do not choose a custom handler UpdateRequestProcessorChain processorFactory = core.getUpdateProcessingChain(null); - SolrParams params = new MapSolrParams(new HashMap()); - SolrQueryRequestBase req = new SolrQueryRequestBase(core, params) { - }; SolrQueryResponse rsp = new SolrQueryResponse(); // ignored XMLStreamReader parser = inputFactory.createXMLStreamReader(input); UpdateRequestProcessor processor = processorFactory.createProcessor(req, rsp); @@ -142,6 +141,9 @@ public class XmlUpdateRequestHandler extends ContentStreamHandlerBase { log.error("Error writing to output stream: " + ee); } } + finally { + req.close(); + } } //////////////////////// SolrInfoMBeans methods //////////////////////