You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mu...@apache.org on 2020/10/30 13:35:55 UTC
[lucene-solr] branch branch_8x updated: SOLR-14946: fix
responseHeader returned in resp with omitHeader=true (#2029)
This is an automated email from the ASF dual-hosted git repository.
munendrasn pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8x by this push:
new f93b282 SOLR-14946: fix responseHeader returned in resp with omitHeader=true (#2029)
f93b282 is described below
commit f93b2821c406a11c6d4400ed85ced6265c764740
Author: S N Munendra <mu...@apache.org>
AuthorDate: Fri Oct 30 18:50:18 2020 +0530
SOLR-14946: fix responseHeader returned in resp with omitHeader=true (#2029)
* This occurs when BinaryResponseWriter#getParsedResponse is called as
it doesn't check for omitHeader.
---
solr/CHANGES.txt | 2 ++
.../org/apache/solr/response/BinaryResponseWriter.java | 3 +++
.../apache/solr/response/TestBinaryResponseWriter.java | 16 ++++++++++++++++
3 files changed, 21 insertions(+)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 9049e4e..70415b5 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -23,6 +23,8 @@ Optimizations
Bug Fixes
---------------------
+* SOLR-14946: Fix responseHeader being returned in response when omitHeader=true and EmbeddedSolrServer is used
+ as the client (Munendra S N)
* SOLR-14940: ReplicationHandler memory leak through SolrCore.closeHooks with unstable ZK connection. (Anver Sotnikov, Mike Drob)
diff --git a/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java b/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
index a78a134..496cde2 100644
--- a/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
@@ -195,6 +195,9 @@ public class BinaryResponseWriter implements BinaryQueryResponseWriter {
@SuppressWarnings("unchecked")
public static NamedList<Object> getParsedResponse(SolrQueryRequest req, SolrQueryResponse rsp) {
try {
+ if (req.getParams().getBool(CommonParams.OMIT_HEADER, false)) {
+ rsp.removeResponseHeader();
+ }
Resolver resolver = new Resolver(req, rsp.getReturnFields());
ByteArrayOutputStream out = new ByteArrayOutputStream();
diff --git a/solr/core/src/test/org/apache/solr/response/TestBinaryResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestBinaryResponseWriter.java
index e80b28c..27f1a74 100644
--- a/solr/core/src/test/org/apache/solr/response/TestBinaryResponseWriter.java
+++ b/solr/core/src/test/org/apache/solr/response/TestBinaryResponseWriter.java
@@ -36,6 +36,7 @@ import org.apache.solr.common.util.ByteUtils;
import org.apache.solr.common.util.JavaBinCodec;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.LocalSolrQueryRequest;
+import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.BinaryResponseWriter.Resolver;
import org.apache.solr.search.SolrReturnFields;
import org.apache.solr.util.SimplePostTool;
@@ -119,6 +120,21 @@ public class TestBinaryResponseWriter extends SolrTestCaseJ4 {
req.close();
}
+ public void testOmitHeader() throws Exception {
+ SolrQueryRequest req = req("q", "*:*", "omitHeader", "true");
+ SolrQueryResponse rsp = h.queryAndResponse(null, req);
+
+ NamedList<Object> res = BinaryResponseWriter.getParsedResponse(req, rsp);
+ assertNull(res.get("responseHeader"));
+ req.close();
+
+ req = req("q", "*:*");
+ rsp = h.queryAndResponse(null, req);
+ res = BinaryResponseWriter.getParsedResponse(req, rsp);
+ assertNotNull(res.get("responseHeader"));
+ req.close();
+ }
+
public void testResolverSolrDocumentPartialFields() throws Exception {
LocalSolrQueryRequest req = lrf.makeRequest("q", "*:*",
"fl", "id,xxx,ddd_s");