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:39:03 UTC
lucene-solr:branch_7x: SOLR-12142: EmbeddedSolrServer should use
req.getContentWriter
Repository: lucene-solr
Updated Branches:
refs/heads/branch_7x 36241416f -> 9c8e527cd
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/9c8e527c
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/9c8e527c
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/9c8e527c
Branch: refs/heads/branch_7x
Commit: 9c8e527cd1b361e2f4ad8d4f71110142b411f0d8
Parents: 3624141
Author: noble <no...@apache.org>
Authored: Thu Apr 19 13:37:31 2018 +1000
Committer: noble <no...@apache.org>
Committed: Thu Apr 19 13:38:42 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/9c8e527c/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index cd46975..08e95fc 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -210,6 +210,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/9c8e527c/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);
}
}