diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java index a8857d2971c..8ca8e1e7f6a 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/BytesRefIteratorTokenStream.java @@ -87,7 +87,9 @@ class BytesRefIteratorTokenStream extends TokenStream { @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; } diff --git a/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java index aecf22338ec..e8c8140eea1 100644 --- a/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java @@ -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 FieldAnalysisRequestHandlerTest extends AnalysisRequestHandlerTestB ((NamedList)result.get("field_types").get("location_rpt")).get("index"); List tokenList = tokens.get("org.apache.lucene.spatial.prefix.BytesRefIteratorTokenStream"); - assertTrue( tokenList.get(0).get("text").toString().startsWith("s") ); + + List 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() ); } }