You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ds...@apache.org on 2015/03/11 18:54:36 UTC

svn commit: r1665951 - in /lucene/dev/branches/branch_5x: ./ lucene/ lucene/spatial/ lucene/spatial/src/java/org/apache/lucene/spatial/prefix/ solr/ solr/core/ solr/core/src/test/org/apache/solr/handler/

Author: dsmiley
Date: Wed Mar 11 17:54:35 2015
New Revision: 1665951

URL: http://svn.apache.org/r1665951
Log:
LUCENE-4942: Fix BytesRefIteratorTokenStream's attribute clone method.

Modified:
    lucene/dev/branches/branch_5x/   (props changed)
    lucene/dev/branches/branch_5x/lucene/   (props changed)
    lucene/dev/branches/branch_5x/lucene/spatial/   (props changed)
    lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java
    lucene/dev/branches/branch_5x/solr/   (props changed)
    lucene/dev/branches/branch_5x/solr/core/   (props changed)
    lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java

Modified: lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java?rev=1665951&r1=1665950&r2=1665951&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java (original)
+++ lucene/dev/branches/branch_5x/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java Wed Mar 11 17:54:35 2015
@@ -87,7 +87,9 @@ class BytesRefIteratorTokenStream extend
 
     @Override
     public BRTermToBytesRefAttributeImpl clone() {
-      final BRTermToBytesRefAttributeImpl clone = (BRTermToBytesRefAttributeImpl) super.clone();
+      // super.clone won't work since we need a new BytesRef reference and it's nice to have it final. The superclass
+      // has no state to copy anyway.
+      final BRTermToBytesRefAttributeImpl clone = new BRTermToBytesRefAttributeImpl();
       clone.setBytesRef(BytesRef.deepCopyOf(bytes));
       return clone;
     }

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java?rev=1665951&r1=1665950&r2=1665951&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java Wed Mar 11 17:54:35 2015
@@ -31,6 +31,8 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -423,6 +425,12 @@ public class FieldAnalysisRequestHandler
         ((NamedList)result.get("field_types").get("location_rpt")).get("index");
     List<NamedList> tokenList = tokens.get("org.apache.lucene.spatial.prefix.BytesRefIteratorTokenStream");
 
-    assertTrue( tokenList.get(0).get("text").toString().startsWith("s") );
+
+    List<String> vals = new ArrayList<>(tokenList.size());
+    for(NamedList v : tokenList) {
+      vals.add( (String)v.get("text") );
+    }
+    Collections.sort(vals);
+    assertEquals( "[s, s7, s7w, s7w1+, s9, s9v, s9v2+, sp, spp, spp5+, sv, svk, svk6+]", vals.toString() );
   }
 }