You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/01/25 15:43:17 UTC
svn commit: r1235772 -
/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/ShardSearchingTestBase.java
Author: rmuir
Date: Wed Jan 25 14:43:17 2012
New Revision: 1235772
URL: http://svn.apache.org/viewvc?rev=1235772&view=rev
Log:
LUCENE-3639: fix ShardSearchingTestBase bugs for stats accumulation
Modified:
lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/ShardSearchingTestBase.java
Modified: lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/ShardSearchingTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/ShardSearchingTestBase.java?rev=1235772&r1=1235771&r2=1235772&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/ShardSearchingTestBase.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/search/ShardSearchingTestBase.java Wed Jan 25 14:43:17 2012
@@ -268,8 +268,19 @@ public abstract class ShardSearchingTest
assert subStats != null;
}
- docFreq += subStats.docFreq();
- totalTermFreq += subStats.totalTermFreq();
+ int nodeDocFreq = subStats.docFreq();
+ if (docFreq >= 0 && nodeDocFreq >= 0) {
+ docFreq += nodeDocFreq;
+ } else {
+ docFreq = -1;
+ }
+
+ long nodeTotalTermFreq = subStats.totalTermFreq();
+ if (totalTermFreq >= 0 && nodeTotalTermFreq >= 0) {
+ totalTermFreq += nodeTotalTermFreq;
+ } else {
+ totalTermFreq = -1;
+ }
}
return new TermStatistics(term.bytes(), docFreq, totalTermFreq);
@@ -299,9 +310,29 @@ public abstract class ShardSearchingTest
// Collection stats are pre-shared on reopen, so,
// we better not have a cache miss:
assert nodeStats != null: "myNodeID=" + myNodeID + " nodeID=" + nodeID + " version=" + nodeVersions[nodeID] + " field=" + field;
- docCount += nodeStats.docCount();
- sumTotalTermFreq += nodeStats.sumTotalTermFreq();
- sumDocFreq += nodeStats.sumDocFreq();
+
+ int nodeDocCount = nodeStats.docCount();
+ if (docCount >= 0 && nodeDocCount >= 0) {
+ docCount += nodeDocCount;
+ } else {
+ docCount = -1;
+ }
+
+ long nodeSumTotalTermFreq = nodeStats.sumTotalTermFreq();
+ if (sumTotalTermFreq >= 0 && nodeSumTotalTermFreq >= 0) {
+ sumTotalTermFreq += nodeSumTotalTermFreq;
+ } else {
+ sumTotalTermFreq = -1;
+ }
+
+ long nodeSumDocFreq = nodeStats.sumDocFreq();
+ if (sumDocFreq >= 0 && nodeSumDocFreq >= 0) {
+ sumDocFreq += nodeSumDocFreq;
+ } else {
+ sumDocFreq = -1;
+ }
+
+ assert nodeStats.maxDoc() >= 0;
maxDoc += nodeStats.maxDoc();
}