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");