You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2018/04/19 03:37:38 UTC

lucene-solr:master: SOLR-12142: EmbeddedSolrServer should use req.getContentWriter

Repository: lucene-solr
Updated Branches:
  refs/heads/master d09c76518 -> 1c8ab330d


SOLR-12142: EmbeddedSolrServer should use req.getContentWriter


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/1c8ab330
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/1c8ab330
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/1c8ab330

Branch: refs/heads/master
Commit: 1c8ab330d66557a289dd5398576726a43964c9e8
Parents: d09c765
Author: noble <no...@apache.org>
Authored: Thu Apr 19 13:37:31 2018 +1000
Committer: noble <no...@apache.org>
Committed: Thu Apr 19 13:37:31 2018 +1000

----------------------------------------------------------------------
 solr/CHANGES.txt                                |  2 ++
 .../solrj/embedded/EmbeddedSolrServer.java      | 24 ++++++++++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1c8ab330/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index e771990..298abad 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -230,6 +230,8 @@ Other Changes
 * SOLR-12134: ref-guide 'bare-bones html' validation is now part of 'ant documentation' and validates
   javadoc links locally. (hossman)
 
+* SOLR-12142: EmbeddedSolrServer should use req.getContentWriter (noble)
+
 ==================  7.3.1 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1c8ab330/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java b/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
index 0c7ea25..90eb0d1 100644
--- a/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
+++ b/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
@@ -16,23 +16,27 @@
  */
 package org.apache.solr.client.solrj.embedded;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.file.Path;
+import java.util.Collections;
 
 import com.google.common.base.Strings;
-
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.StreamingResponseCallback;
+import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
+import org.apache.solr.client.solrj.impl.BinaryRequestWriter.BAOS;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.util.ContentStreamBase;
 import org.apache.solr.common.util.JavaBinCodec;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.CoreContainer;
@@ -126,7 +130,19 @@ public class EmbeddedSolrServer extends SolrClient {
     SolrRequestHandler handler = coreContainer.getRequestHandler(path);
     if (handler != null) {
       try {
-        SolrQueryRequest req = _parser.buildRequestFrom(null, request.getParams(), request.getContentStreams());
+        SolrQueryRequest req = _parser.buildRequestFrom(null, request.getParams(), Collections.singleton(new ContentStreamBase() {
+          @Override
+          public InputStream getStream() throws IOException {
+            BAOS baos = new BAOS();
+            new BinaryRequestWriter().write(request, baos);
+            return new ByteArrayInputStream(baos.getbuf());
+          }
+          @Override
+          public String getContentType() {
+            return CommonParams.JAVABIN_MIME;
+
+          }
+        }));
         req.getContext().put(PATH, path);
         SolrQueryResponse resp = new SolrQueryResponse();
         handler.handleRequest(req, resp);
@@ -201,10 +217,10 @@ public class EmbeddedSolrServer extends SolrClient {
               };
 
 
-          try(ByteArrayOutputStream out = new ByteArrayOutputStream()) {
+          try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
             createJavaBinCodec(callback, resolver).setWritableDocFields(resolver).marshal(rsp.getValues(), out);
 
-            try(InputStream in = out.toInputStream()){
+            try (InputStream in = out.toInputStream()) {
               return (NamedList<Object>) new JavaBinCodec(resolver).unmarshal(in);
             }
           }