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 2011/11/15 20:31:22 UTC
svn commit: r1202392 -
/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java
Author: rmuir
Date: Tue Nov 15 19:31:21 2011
New Revision: 1202392
URL: http://svn.apache.org/viewvc?rev=1202392&view=rev
Log:
LUCENE-2621: die attributes die
Modified:
lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java
Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java?rev=1202392&r1=1202391&r2=1202392&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/codecs/TermVectorsWriter.java Tue Nov 15 19:31:21 2011
@@ -203,7 +203,7 @@ public abstract class TermVectorsWriter
final boolean positions;
- final OffsetAttribute offsetAtt;
+ OffsetAttribute offsetAtt;
final TermsEnum termsEnum = terms.iterator(null);
@@ -244,7 +244,16 @@ public abstract class TermVectorsWriter
startTerm(termsEnum.term(), freq);
if (positions || offsetAtt != null) {
- docsAndPositionsEnum = termsEnum.docsAndPositions(null, docsAndPositionsEnum);
+ DocsAndPositionsEnum dp = termsEnum.docsAndPositions(null, docsAndPositionsEnum);
+ // TODO: add startOffset()/endOffset() to d&pEnum... this is insanity
+ if (dp != docsAndPositionsEnum) {
+ // producer didnt reuse, must re-pull attributes
+ if (offsetAtt != null) {
+ assert dp.attributes().hasAttribute(OffsetAttribute.class);
+ offsetAtt = dp.attributes().getAttribute(OffsetAttribute.class);
+ }
+ }
+ docsAndPositionsEnum = dp;
final int docID = docsAndPositionsEnum.nextDoc();
assert docID != DocsEnum.NO_MORE_DOCS;
assert docsAndPositionsEnum.freq() == freq;