You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2013/03/20 22:16:56 UTC
svn commit: r1459059 - in /lucene/dev/branches/lucene_solr_4_2: ./
dev-tools/ lucene/ lucene/analysis/
lucene/analysis/icu/src/java/org/apache/lucene/collation/ lucene/backwards/
lucene/benchmark/ lucene/classification/ lucene/classification/src/ lucen...
Author: simonw
Date: Wed Mar 20 21:16:55 2013
New Revision: 1459059
URL: http://svn.apache.org/r1459059
Log:
LUCENE-4865: BytesRefArray#append returns wrong index
Modified:
lucene/dev/branches/lucene_solr_4_2/ (props changed)
lucene/dev/branches/lucene_solr_4_2/dev-tools/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/BUILD.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/CHANGES.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/JRE_VERSION_MIGRATION.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/LICENSE.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/MIGRATE.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/NOTICE.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/README.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/SYSTEM_REQUIREMENTS.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/analysis/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/analysis/icu/src/java/org/apache/lucene/collation/ICUCollationKeyFilterFactory.java (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/backwards/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/benchmark/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/build.xml (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/classification/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/classification/build.xml (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/classification/ivy.xml (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/classification/src/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/codecs/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/common-build.xml (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/index/index.40.cfs.zip (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/index/index.40.nocfs.zip (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/index/index.40.optimized.cfs.zip (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/index/index.40.optimized.nocfs.zip (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/search/TestSort.java (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/search/TestSortDocValues.java (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/search/TestSortRandom.java (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/core/src/test/org/apache/lucene/search/TestTotalHitCountCollector.java (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/demo/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/facet/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/grouping/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/highlighter/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/ivy-settings.xml (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/join/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/licenses/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/memory/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/misc/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/module-build.xml (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/queries/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/queryparser/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/sandbox/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/site/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/spatial/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/suggest/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/java/org/apache/lucene/search/suggest/BytesRefArray.java
lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/test/org/apache/lucene/search/suggest/TestBytesRefArray.java
lucene/dev/branches/lucene_solr_4_2/lucene/test-framework/ (props changed)
lucene/dev/branches/lucene_solr_4_2/lucene/tools/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/CHANGES.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/LICENSE.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/NOTICE.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/README.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/SYSTEM_REQUIREMENTS.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/build.xml (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/cloud-dev/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/common-build.xml (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/contrib/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/core/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/core/src/test/org/apache/solr/core/TestConfig.java (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/example/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/licenses/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/licenses/httpclient-LICENSE-ASL.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/licenses/httpclient-NOTICE.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/licenses/httpcore-LICENSE-ASL.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/licenses/httpcore-NOTICE.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/licenses/httpmime-LICENSE-ASL.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/licenses/httpmime-NOTICE.txt (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/scripts/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/site/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/solrj/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/test-framework/ (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/testlogging.properties (props changed)
lucene/dev/branches/lucene_solr_4_2/solr/webapp/ (props changed)
Modified: lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/java/org/apache/lucene/search/suggest/BytesRefArray.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/java/org/apache/lucene/search/suggest/BytesRefArray.java?rev=1459059&r1=1459058&r2=1459059&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/java/org/apache/lucene/search/suggest/BytesRefArray.java (original)
+++ lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/java/org/apache/lucene/search/suggest/BytesRefArray.java Wed Mar 20 21:16:55 2013
@@ -70,7 +70,7 @@ public final class BytesRefArray {
/**
* Appends a copy of the given {@link BytesRef} to this {@link BytesRefArray}.
* @param bytes the bytes to append
- * @return the ordinal of the appended bytes
+ * @return the index of the appended bytes
*/
public int append(BytesRef bytes) {
if (lastElement >= offsets.length) {
@@ -82,7 +82,7 @@ public final class BytesRefArray {
pool.append(bytes);
offsets[lastElement++] = currentOffset;
currentOffset += bytes.length;
- return lastElement;
+ return lastElement-1;
}
/**
@@ -96,21 +96,21 @@ public final class BytesRefArray {
/**
* Returns the <i>n'th</i> element of this {@link BytesRefArray}
* @param spare a spare {@link BytesRef} instance
- * @param ord the elements ordinal to retrieve
+ * @param index the elements index to retrieve
* @return the <i>n'th</i> element of this {@link BytesRefArray}
*/
- public BytesRef get(BytesRef spare, int ord) {
- if (lastElement > ord) {
- int offset = offsets[ord];
- int length = ord == lastElement - 1 ? currentOffset - offset
- : offsets[ord + 1] - offset;
+ public BytesRef get(BytesRef spare, int index) {
+ if (lastElement > index) {
+ int offset = offsets[index];
+ int length = index == lastElement - 1 ? currentOffset - offset
+ : offsets[index + 1] - offset;
assert spare.offset == 0;
spare.grow(length);
spare.length = length;
pool.readBytes(offset, spare.bytes, spare.offset, spare.length);
return spare;
}
- throw new IndexOutOfBoundsException("index " + ord
+ throw new IndexOutOfBoundsException("index " + index
+ " must be less than the size: " + lastElement);
}
@@ -130,20 +130,20 @@ public final class BytesRefArray {
@Override
protected int compare(int i, int j) {
- final int ord1 = orderedEntries[i], ord2 = orderedEntries[j];
- return comp.compare(get(scratch1, ord1), get(scratch2, ord2));
+ final int idx1 = orderedEntries[i], idx2 = orderedEntries[j];
+ return comp.compare(get(scratch1, idx1), get(scratch2, idx2));
}
@Override
protected void setPivot(int i) {
- final int ord = orderedEntries[i];
- get(pivot, ord);
+ final int index = orderedEntries[i];
+ get(pivot, index);
}
@Override
protected int comparePivot(int j) {
- final int ord = orderedEntries[j];
- return comp.compare(pivot, get(scratch2, ord));
+ final int index = orderedEntries[j];
+ return comp.compare(pivot, get(scratch2, index));
}
private final BytesRef pivot = new BytesRef(), scratch1 = new BytesRef(),
@@ -176,14 +176,14 @@ public final class BytesRefArray {
public BytesRefIterator iterator(final Comparator<BytesRef> comp) {
final BytesRef spare = new BytesRef();
final int size = size();
- final int[] ords = comp == null ? null : sort(comp);
+ final int[] indices = comp == null ? null : sort(comp);
return new BytesRefIterator() {
int pos = 0;
@Override
public BytesRef next() {
if (pos < size) {
- return get(spare, ords == null ? pos++ : ords[pos++]);
+ return get(spare, indices == null ? pos++ : indices[pos++]);
}
return null;
}
Modified: lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/test/org/apache/lucene/search/suggest/TestBytesRefArray.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/test/org/apache/lucene/search/suggest/TestBytesRefArray.java?rev=1459059&r1=1459058&r2=1459059&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/test/org/apache/lucene/search/suggest/TestBytesRefArray.java (original)
+++ lucene/dev/branches/lucene_solr_4_2/lucene/suggest/src/test/org/apache/lucene/search/suggest/TestBytesRefArray.java Wed Mar 20 21:16:55 2013
@@ -39,11 +39,12 @@ public class TestBytesRefArray extends L
}
int entries = atLeast(500);
BytesRef spare = new BytesRef();
+ int initSize = list.size();
for (int i = 0; i < entries; i++) {
String randomRealisticUnicodeString = _TestUtil
.randomRealisticUnicodeString(random);
spare.copyChars(randomRealisticUnicodeString);
- list.append(spare);
+ assertEquals(i+initSize, list.append(spare));
stringList.add(randomRealisticUnicodeString);
}
for (int i = 0; i < entries; i++) {
@@ -81,11 +82,12 @@ public class TestBytesRefArray extends L
}
int entries = atLeast(500);
BytesRef spare = new BytesRef();
+ final int initSize = list.size();
for (int i = 0; i < entries; i++) {
String randomRealisticUnicodeString = _TestUtil
.randomRealisticUnicodeString(random);
spare.copyChars(randomRealisticUnicodeString);
- list.append(spare);
+ assertEquals(initSize + i, list.append(spare));
stringList.add(randomRealisticUnicodeString);
}