You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2016/09/09 19:02:03 UTC

lucene-solr:branch_6x: SOLR-9490: Fixed bugs in BoolField that caused it to erroneously return "false" for all docs depending on usage

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x 7834fc1d5 -> d59715f14


SOLR-9490: Fixed bugs in BoolField that caused it to erroneously return "false" for all docs depending on usage

(cherry picked from commit 60ce8d7c549ef90cd6aaa9297bf31aeb3dd3417e)


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

Branch: refs/heads/branch_6x
Commit: d59715f14bc180ebb9b2aef8ebbcb02103e9fcc8
Parents: 7834fc1
Author: Chris Hostetter <ho...@apache.org>
Authored: Fri Sep 9 11:45:09 2016 -0700
Committer: Chris Hostetter <ho...@apache.org>
Committed: Fri Sep 9 11:58:02 2016 -0700

----------------------------------------------------------------------
 solr/CHANGES.txt                                          |  2 ++
 solr/core/src/java/org/apache/solr/schema/BoolField.java  | 10 ++++++----
 .../org/apache/solr/client/solrj/SolrExampleTests.java    |  7 +++++--
 3 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d59715f1/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 3b7245f..5de400b 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -85,6 +85,8 @@ Bug Fixes
 * SOLR-9488: Shard split can fail to write commit data on shutdown/restart causing replicas to recover
   without replicating the index. This can cause data loss. (shalin)
 
+* SOLR-9490: Fixed bugs in BoolField that caused it to erroneously return "false" for all docs depending
+  on usage (Colvin Cowie, Dan Fox, hossman)
 
 Optimizations
 ----------------------

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d59715f1/solr/core/src/java/org/apache/solr/schema/BoolField.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/schema/BoolField.java b/solr/core/src/java/org/apache/solr/schema/BoolField.java
index 1ecdb59..a9acfc5 100644
--- a/solr/core/src/java/org/apache/solr/schema/BoolField.java
+++ b/solr/core/src/java/org/apache/solr/schema/BoolField.java
@@ -128,11 +128,13 @@ public class BoolField extends PrimitiveFieldType {
 
   @Override
   public String toExternal(IndexableField f) {
-    if (f.binaryValue() == null) {
-      return null;
+    if (null != f.binaryValue()) {
+      return indexedToReadable(f.binaryValue().utf8ToString());
     }
-
-    return indexedToReadable(f.binaryValue().utf8ToString());
+    if (null != f.stringValue()) {
+      return indexedToReadable(f.stringValue());
+    }
+    return null;
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d59715f1/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
index 1dd074e..4f3f83d 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
@@ -182,12 +182,15 @@ abstract public class SolrExampleTests extends SolrExampleTestsBase
     // test a second query, test making a copy of the main query
     SolrQuery query2 = query.getCopy();
     query2.addFilterQuery("inStock:true");
+    Assert.assertFalse(query.getFilterQueries() == query2.getFilterQueries());
     response = client.query( query2 );
     Assert.assertEquals(1, query2.getFilterQueries().length);
     Assert.assertEquals(0, response.getStatus());
     Assert.assertEquals(2, response.getResults().getNumFound() );
-    Assert.assertFalse(query.getFilterQueries() == query2.getFilterQueries());
-
+    for (SolrDocument outDoc : response.getResults()) {
+      assertEquals(true, outDoc.getFieldValue("inStock"));
+    }
+    
     // sanity check round tripping of params...
     query = new SolrQuery("foo");
     query.addFilterQuery("{!field f=inStock}true");