You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rj...@apache.org on 2015/02/25 02:17:14 UTC

svn commit: r1662157 - in /lucene/dev/branches/lucene6271: lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/ lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/ lucene/codecs/src/java/org/apache/lucene/codecs/memory/ lucene/codecs/...

Author: rjernst
Date: Wed Feb 25 01:17:13 2015
New Revision: 1662157

URL: http://svn.apache.org/r1662157
Log:
LUCENE-6271: initial patch, postings() funcs switched over to not return null, callers marked with nocommits that check against null

Modified:
    lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/BlockTermsReader.java
    lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsIntersectTermsEnum.java
    lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsSegmentTermsEnum.java
    lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectPostingsFormat.java
    lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java
    lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextFieldsReader.java
    lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsReader.java
    lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressingTermVectorsReader.java
    lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50PostingsReader.java
    lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
    lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
    lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java
    lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java
    lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
    lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/spans/SpanTermQuery.java
    lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java
    lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestPostingsEnum.java
    lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
    lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java
    lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java
    lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
    lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/SortingLeafReader.java
    lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java
    lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java
    lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
    lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BaseTermVectorsFormatTestCase.java
    lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
    lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
    lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
    lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java

Modified: lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/BlockTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/BlockTermsReader.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/BlockTermsReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blockterms/BlockTermsReader.java Wed Feb 25 01:17:13 2015
@@ -652,14 +652,6 @@ public class BlockTermsReader extends Fi
 
       @Override
       public PostingsEnum postings(Bits liveDocs, PostingsEnum reuse, int flags) throws IOException {
-
-        if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
-          if (fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
-            // Positions were not indexed:
-            return null;
-          }
-        }
-
         //System.out.println("BTR.docs this=" + this);
         decodeMetaData();
         //System.out.println("BTR.docs:  state.docFreq=" + state.docFreq);

Modified: lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsIntersectTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsIntersectTermsEnum.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsIntersectTermsEnum.java (original)
+++ lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsIntersectTermsEnum.java Wed Feb 25 01:17:13 2015
@@ -203,14 +203,6 @@ final class OrdsIntersectTermsEnum exten
 
   @Override
   public PostingsEnum postings(Bits skipDocs, PostingsEnum reuse, int flags) throws IOException {
-
-    if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
-      if (fr.fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
-        // Positions were not indexed:
-        return null;
-      }
-    }
-
     currentFrame.decodeMetaData();
     return fr.parent.postingsReader.postings(fr.fieldInfo, currentFrame.termState, skipDocs, reuse, flags);
   }

Modified: lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsSegmentTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsSegmentTermsEnum.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsSegmentTermsEnum.java (original)
+++ lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/blocktreeords/OrdsSegmentTermsEnum.java Wed Feb 25 01:17:13 2015
@@ -924,14 +924,6 @@ public final class OrdsSegmentTermsEnum
 
   @Override
   public PostingsEnum postings(Bits skipDocs, PostingsEnum reuse, int flags) throws IOException {
-
-    if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
-      if (fr.fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
-        // Positions were not indexed:
-        return null;
-      }
-    }
-
     assert !eof;
     //if (DEBUG) {
     //System.out.println("BTTR.docs seg=" + segment);

Modified: lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectPostingsFormat.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectPostingsFormat.java (original)
+++ lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/DirectPostingsFormat.java Wed Feb 25 01:17:13 2015
@@ -860,14 +860,25 @@ public final class DirectPostingsFormat
         // TODO: implement reuse
         // it's hairy!
 
+        // TODO: the logic of which enum impl to choose should be refactored to be simpler...
         if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
-          if (!hasPos) {
-            return null;
-          }
 
           if (terms[termOrd] instanceof LowFreqTerm) {
             final LowFreqTerm term = ((LowFreqTerm) terms[termOrd]);
             final int[] postings = term.postings;
+            if (hasPos == false) {
+              LowFreqDocsEnumNoPos docsEnum;
+              if (reuse instanceof LowFreqDocsEnumNoPos) {
+                docsEnum = (LowFreqDocsEnumNoPos) reuse;
+                if (!docsEnum.canReuse(liveDocs)) {
+                  docsEnum = new LowFreqDocsEnumNoPos(liveDocs);
+                }
+              } else {
+                docsEnum = new LowFreqDocsEnumNoPos(liveDocs);
+              }
+
+              return docsEnum.reset(postings);
+            }
             final byte[] payloads = term.payloads;
             return new LowFreqPostingsEnum(liveDocs, hasOffsets, hasPayloads).reset(postings, payloads);
           } else {
@@ -1454,10 +1465,9 @@ public final class DirectPostingsFormat
       public PostingsEnum postings(Bits liveDocs, PostingsEnum reuse, int flags) {
         // TODO: implement reuse
         // it's hairy!
-        if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
-          if (!hasPos) {
-            return null;
-          }
+
+        // TODO: the logic of which enum impl to choose should be refactored to be simpler...
+        if (hasPos && PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
           if (terms[termOrd] instanceof LowFreqTerm) {
             final LowFreqTerm term = ((LowFreqTerm) terms[termOrd]);
             final int[] postings = term.postings;

Modified: lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java (original)
+++ lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java Wed Feb 25 01:17:13 2015
@@ -829,10 +829,9 @@ public final class MemoryPostingsFormat
     @Override
     public PostingsEnum postings(Bits liveDocs, PostingsEnum reuse, int flags) {
 
-      if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
-        if (field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
-          return null;
-        }
+      // TODO: the logic of which enum impl to choose should be refactored to be simpler...
+      boolean hasPositions = field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
+      if (hasPositions && PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
         boolean hasOffsets = field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
         decodeMetaData();
         FSTPostingsEnum docsAndPositionsEnum;

Modified: lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextFieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextFieldsReader.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextFieldsReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextFieldsReader.java Wed Feb 25 01:17:13 2015
@@ -209,11 +209,8 @@ class SimpleTextFieldsReader extends Fie
     @Override
     public PostingsEnum postings(Bits liveDocs, PostingsEnum reuse, int flags) throws IOException {
 
-      if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
-        if (indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
-          // Positions were not indexed
-          return null;
-        }
+      boolean hasPositions = indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
+      if (hasPositions && PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
 
         SimpleTextPostingsEnum docsAndPositionsEnum;
         if (reuse != null && reuse instanceof SimpleTextPostingsEnum && ((SimpleTextPostingsEnum) reuse).canReuse(SimpleTextFieldsReader.this.in)) {

Modified: lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsReader.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsReader.java Wed Feb 25 01:17:13 2015
@@ -388,16 +388,15 @@ public class SimpleTextTermVectorsReader
 
     @Override
     public PostingsEnum postings(Bits liveDocs, PostingsEnum reuse, int flags) throws IOException {
-
+      
       if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
         SimpleTVPostings postings = current.getValue();
-        if (postings.positions == null && postings.startOffsets == null) {
-          return null;
+        if (postings.positions != null || postings.startOffsets != null) {
+          // TODO: reuse
+          SimpleTVPostingsEnum e = new SimpleTVPostingsEnum();
+          e.reset(liveDocs, postings.positions, postings.startOffsets, postings.endOffsets, postings.payloads);
+          return e;
         }
-        // TODO: reuse
-        SimpleTVPostingsEnum e = new SimpleTVPostingsEnum();
-        e.reset(liveDocs, postings.positions, postings.startOffsets, postings.endOffsets, postings.payloads);
-        return e;
       }
 
       // TODO: reuse

Modified: lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressingTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressingTermVectorsReader.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressingTermVectorsReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressingTermVectorsReader.java Wed Feb 25 01:17:13 2015
@@ -936,12 +936,6 @@ public final class CompressingTermVector
 
     @Override
     public final PostingsEnum postings(Bits liveDocs, PostingsEnum reuse, int flags) throws IOException {
-
-      if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
-        if (positions == null && startOffsets == null)
-          return null;
-      }
-
       final TVPostingsEnum docsEnum;
       if (reuse != null && reuse instanceof TVPostingsEnum) {
         docsEnum = (TVPostingsEnum) reuse;

Modified: lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50PostingsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50PostingsReader.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50PostingsReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/codecs/lucene50/Lucene50PostingsReader.java Wed Feb 25 01:17:13 2015
@@ -193,8 +193,12 @@ public final class Lucene50PostingsReade
     
   @Override
   public PostingsEnum postings(FieldInfo fieldInfo, BlockTermState termState, Bits liveDocs, PostingsEnum reuse, int flags) throws IOException {
+    
+    boolean indexHasPositions = fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
+    boolean indexHasOffsets = fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
+    boolean indexHasPayloads = fieldInfo.hasPayloads();
 
-    if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS) == false) {
+    if (indexHasPositions == false || PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS) == false) {
       BlockDocsEnum docsEnum;
       if (reuse instanceof BlockDocsEnum) {
         docsEnum = (BlockDocsEnum) reuse;
@@ -205,17 +209,8 @@ public final class Lucene50PostingsReade
         docsEnum = new BlockDocsEnum(fieldInfo);
       }
       return docsEnum.reset(liveDocs, (IntBlockTermState) termState, flags);
-    }
-
-    boolean indexHasPositions = fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
-    boolean indexHasOffsets = fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
-    boolean indexHasPayloads = fieldInfo.hasPayloads();
-
-    if (!indexHasPositions)
-      return null;
-
-    if ((!indexHasOffsets || PostingsEnum.featureRequested(flags, PostingsEnum.OFFSETS) == false) &&
-        (!indexHasPayloads || PostingsEnum.featureRequested(flags, PostingsEnum.PAYLOADS) == false)) {
+    } else if ((indexHasOffsets == false || PostingsEnum.featureRequested(flags, PostingsEnum.OFFSETS) == false) &&
+               (indexHasPayloads == false || PostingsEnum.featureRequested(flags, PostingsEnum.PAYLOADS) == false)) {
       BlockPostingsEnum docsAndPositionsEnum;
       if (reuse instanceof BlockPostingsEnum) {
         docsAndPositionsEnum = (BlockPostingsEnum) reuse;

Modified: lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java Wed Feb 25 01:17:13 2015
@@ -1050,6 +1050,7 @@ public class CheckIndex implements Close
         sumDocFreq += docFreq;
         
         docs = termsEnum.postings(liveDocs, docs);
+        // nocommit: check null
         postings = termsEnum.postings(liveDocs, postings, PostingsEnum.ALL);
 
         if (hasFreqs == false) {
@@ -1389,6 +1390,7 @@ public class CheckIndex implements Close
               }
               
               docs = termsEnum.postings(liveDocs, docs, PostingsEnum.NONE);
+              // nocommit: null check still needed? how to replace?
               if (docs == null) {
                 throw new RuntimeException("null DocsEnum from to existing term " + seekTerms[i]);
               }
@@ -1407,6 +1409,7 @@ public class CheckIndex implements Close
               
               totDocFreq += termsEnum.docFreq();
               docs = termsEnum.postings(null, docs, PostingsEnum.NONE);
+              // nocommit: null check still needed? how to replace?
               if (docs == null) {
                 throw new RuntimeException("null DocsEnum from to existing term " + seekTerms[i]);
               }

Modified: lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiFields.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiFields.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiFields.java Wed Feb 25 01:17:13 2015
@@ -159,8 +159,7 @@ public final class MultiFields extends F
    *  required.  Some codecs may be able to optimize
    *  their implementation when offsets and/or payloads are not
    *  required. This will return null if the field or term does not
-   *  exist or positions were not indexed. See {@link
-   *  TermsEnum#postings(Bits, PostingsEnum,int)}. */
+   *  exist. See {@link TermsEnum#postings(Bits, PostingsEnum,int)}. */
   public static PostingsEnum getTermPositionsEnum(IndexReader r, Bits liveDocs, String field, BytesRef term, int flags) throws IOException {
     assert field != null;
     assert term != null;

Modified: lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java Wed Feb 25 01:17:13 2015
@@ -379,22 +379,14 @@ public final class MultiTermsEnum extend
 
       assert entry.index < docsEnum.subPostingsEnums.length: entry.index + " vs " + docsEnum.subPostingsEnums.length + "; " + subs.length;
       final PostingsEnum subPostingsEnum = entry.terms.postings(b, docsEnum.subPostingsEnums[entry.index], flags);
-      if (subPostingsEnum != null) {
-        docsEnum.subPostingsEnums[entry.index] = subPostingsEnum;
-        subDocs[upto].postingsEnum = subPostingsEnum;
-        subDocs[upto].slice = entry.subSlice;
-        upto++;
-      } else {
-        // should this be an error?
-        return null;    // We can't support what is being asked for
-      }
-    }
-
-    if (upto == 0) {
-      return null;
-    } else {
-      return docsEnum.reset(subDocs, upto);
+      assert subPostingsEnum != null;
+      docsEnum.subPostingsEnums[entry.index] = subPostingsEnum;
+      subDocs[upto].postingsEnum = subPostingsEnum;
+      subDocs[upto].slice = entry.subSlice;
+      upto++;
     }
+    
+    return docsEnum.reset(subDocs, upto);
   }
 
   final static class TermsEnumWithSlice {

Modified: lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java Wed Feb 25 01:17:13 2015
@@ -230,6 +230,7 @@ public class MultiPhraseQuery extends Qu
           termsEnum.seekExact(term.bytes(), termState);
           postingsEnum = termsEnum.postings(liveDocs, null, PostingsEnum.POSITIONS);
 
+          // nocommit: check
           if (postingsEnum == null) {
             // term does exist, but has no positions
             assert termsEnum.postings(liveDocs, null, PostingsEnum.NONE) != null: "termstate found but no term exists in reader";
@@ -483,6 +484,7 @@ class UnionPostingsEnum extends Postings
       }
       termsEnum.seekExact(term.bytes(), termState);
       PostingsEnum postings = termsEnum.postings(liveDocs, null, PostingsEnum.POSITIONS);
+      // nocommit: check
       if (postings == null) {
         // term does exist, but has no positions
         throw new IllegalStateException("field \"" + term.field() + "\" was indexed without position data; cannot run PhraseQuery (term=" + term.text() + ")");

Modified: lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java Wed Feb 25 01:17:13 2015
@@ -312,6 +312,7 @@ public class PhraseQuery extends Query {
 
         // PhraseQuery on a field that did not index
         // positions.
+        // nocommit: check
         if (postingsEnum == null) {
           assert te.seekExact(t.bytes()) : "termstate found but no term exists in reader";
           // term does exist, but has no positions

Modified: lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/spans/SpanTermQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/spans/SpanTermQuery.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/spans/SpanTermQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/java/org/apache/lucene/search/spans/SpanTermQuery.java Wed Feb 25 01:17:13 2015
@@ -119,6 +119,7 @@ public class SpanTermQuery extends SpanQ
     if (postings != null) {
       return new TermSpans(postings, term);
     } else {
+      // nocommit: check
       // term does exist, but has no positions
       throw new IllegalStateException("field \"" + term.field() + "\" was indexed without position data; cannot run SpanTermQuery (term=" + term.text() + ")");
     }

Modified: lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java Wed Feb 25 01:17:13 2015
@@ -458,6 +458,7 @@ public class TestCodecs extends LuceneTe
               if (postings != null) {
                 docs = postings;
               } else {
+                // nocommit: check
                 docs = TestUtil.docs(random(), termsEnum, null, null, PostingsEnum.FREQS);
               }
             } else {

Modified: lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestPostingsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestPostingsEnum.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestPostingsEnum.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestPostingsEnum.java Wed Feb 25 01:17:13 2015
@@ -84,18 +84,22 @@ public class TestPostingsEnum extends Lu
     
     // we did not index positions
     PostingsEnum docsAndPositionsEnum = getOnlySegmentReader(reader).postings(new Term("foo", "bar"), PostingsEnum.POSITIONS);
+    // nocommit: check
     assertNull(docsAndPositionsEnum);
     
     // we did not index positions
     docsAndPositionsEnum = getOnlySegmentReader(reader).postings(new Term("foo", "bar"), PostingsEnum.PAYLOADS);
+    // nocommit: check
     assertNull(docsAndPositionsEnum);
     
     // we did not index positions
     docsAndPositionsEnum = getOnlySegmentReader(reader).postings(new Term("foo", "bar"), PostingsEnum.OFFSETS);
+    // nocommit: check
     assertNull(docsAndPositionsEnum);
     
     // we did not index positions
     docsAndPositionsEnum = getOnlySegmentReader(reader).postings(new Term("foo", "bar"), PostingsEnum.ALL);
+    // nocommit: check
     assertNull(docsAndPositionsEnum);
     
     iw.close();

Modified: lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java Wed Feb 25 01:17:13 2015
@@ -397,6 +397,7 @@ public class TestStressIndexing2 extends
             while((term2 = termsEnum3.next()) != null) {
               System.out.println("      " + term2.utf8ToString() + ": freq=" + termsEnum3.totalTermFreq());
               dpEnum = termsEnum3.postings(null, dpEnum, PostingsEnum.ALL);
+              // nocommit: check
               if (dpEnum != null) {
                 assertTrue(dpEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
                 final int freq = dpEnum.freq();
@@ -620,6 +621,7 @@ public class TestStressIndexing2 extends
         
         dpEnum1 = termsEnum1.postings(null, dpEnum1, PostingsEnum.ALL);
         dpEnum2 = termsEnum2.postings(null, dpEnum2, PostingsEnum.ALL);
+        // nocommit: check
         if (dpEnum1 != null) {
           assertNotNull(dpEnum2);
           int docID1 = dpEnum1.nextDoc();

Modified: lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java Wed Feb 25 01:17:13 2015
@@ -292,6 +292,7 @@ public class TestTermVectorsReader exten
       //System.out.println("Term: " + term);
       assertEquals(testTerms[i], term);
       assertNotNull(termsEnum.postings(null, null));
+      // nocommit: check
       assertNull(termsEnum.postings(null, null, PostingsEnum.ALL)); // no pos
     }
     reader.close();

Modified: lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java (original)
+++ lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java Wed Feb 25 01:17:13 2015
@@ -552,6 +552,7 @@ public class PostingsHighlighter {
         if (!termsEnum.seekExact(terms[i])) {
           continue; // term not found
         }
+        // nocommit: check
         de = postings[i] = termsEnum.postings(null, null, PostingsEnum.OFFSETS);
         if (de == null) {
           // no positions available

Modified: lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java (original)
+++ lucene/dev/branches/lucene6271/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java Wed Feb 25 01:17:13 2015
@@ -104,6 +104,7 @@ public class FieldTermStack {
       if (!termSet.contains(term)) {
         continue;
       }
+      // nocommit: check
       dpEnum = termsEnum.postings(null, dpEnum, PostingsEnum.POSITIONS);
       if (dpEnum == null) {
         // null snippet

Modified: lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/SortingLeafReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/SortingLeafReader.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/SortingLeafReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/SortingLeafReader.java Wed Feb 25 01:17:13 2015
@@ -88,13 +88,13 @@ public class SortingLeafReader extends F
 
     @Override
     public TermsEnum iterator(final TermsEnum reuse) throws IOException {
-      return new SortingTermsEnum(in.iterator(reuse), docMap, indexOptions);
+      return new SortingTermsEnum(in.iterator(reuse), docMap, indexOptions, hasPositions());
     }
 
     @Override
     public TermsEnum intersect(CompiledAutomaton compiled, BytesRef startTerm)
         throws IOException {
-      return new SortingTermsEnum(in.intersect(compiled, startTerm), docMap, indexOptions);
+      return new SortingTermsEnum(in.intersect(compiled, startTerm), docMap, indexOptions, hasPositions());
     }
 
   }
@@ -103,11 +103,13 @@ public class SortingLeafReader extends F
 
     final Sorter.DocMap docMap; // pkg-protected to avoid synthetic accessor methods
     private final IndexOptions indexOptions;
+    private final boolean hasPositions;
 
-    public SortingTermsEnum(final TermsEnum in, Sorter.DocMap docMap, IndexOptions indexOptions) {
+    public SortingTermsEnum(final TermsEnum in, Sorter.DocMap docMap, IndexOptions indexOptions, boolean hasPositions) {
       super(in);
       this.docMap = docMap;
       this.indexOptions = indexOptions;
+      this.hasPositions = hasPositions;
     }
 
     Bits newToOld(final Bits liveDocs) {
@@ -132,7 +134,7 @@ public class SortingLeafReader extends F
     @Override
     public PostingsEnum postings(Bits liveDocs, PostingsEnum reuse, final int flags) throws IOException {
 
-      if (PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
+      if (hasPositions && PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
         final PostingsEnum inReuse;
         final SortingPostingsEnum wrapReuse;
         if (reuse != null && reuse instanceof SortingPostingsEnum) {
@@ -146,10 +148,6 @@ public class SortingLeafReader extends F
         }
 
         final PostingsEnum inDocsAndPositions = in.postings(newToOld(liveDocs), inReuse, flags);
-        if (inDocsAndPositions == null) {
-          return null;
-        }
-
         // we ignore the fact that offsets may be stored but not asked for,
         // since this code is expected to be used during addIndexes which will
         // ask for everything. if that assumption changes in the future, we can

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java Wed Feb 25 01:17:13 2015
@@ -335,6 +335,7 @@ public class TermAutomatonQuery extends
 
     public EnumAndScorer(int termID, PostingsEnum posEnum) {
       this.termID = termID;
+      // nocommit: check uses
       this.posEnum = posEnum;
     }
   }

Modified: lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java Wed Feb 25 01:17:13 2015
@@ -159,9 +159,8 @@ public class AssertingLeafReader extends
         actualReuse = null;
       }
       PostingsEnum docs = super.postings(liveDocs, actualReuse, flags);
-      if (docs == null) {
-        return null;
-      } else if (docs == actualReuse) {
+      assert docs != null;
+      if (docs == actualReuse) {
         // codec reused, reset asserting state
         ((AssertingPostingsEnum)reuse).reset();
         return reuse;

Modified: lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java (original)
+++ lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java Wed Feb 25 01:17:13 2015
@@ -1626,6 +1626,7 @@ public abstract class BasePostingsFormat
                       } else {
                         docs = termsEnum.postings(null, null, PostingsEnum.POSITIONS);
                       }
+                      // nocommit: can we remove the noPositions and always ask for positions here?
                       int docFreq = 0;
                       long totalTermFreq = 0;
                       while (docs.nextDoc() != PostingsEnum.NO_MORE_DOCS) {

Modified: lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BaseTermVectorsFormatTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BaseTermVectorsFormatTestCase.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BaseTermVectorsFormatTestCase.java (original)
+++ lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/index/BaseTermVectorsFormatTestCase.java Wed Feb 25 01:17:13 2015
@@ -454,6 +454,7 @@ public abstract class BaseTermVectorsFor
       bits.clear(0);
       PostingsEnum docsAndPositionsEnum = termsEnum.postings(bits, random().nextBoolean() ? null : this.docsEnum.get(), PostingsEnum.POSITIONS);
       assertEquals(ft.storeTermVectorOffsets() || ft.storeTermVectorPositions(), docsAndPositionsEnum != null);
+      // nocommit: check
       if (docsAndPositionsEnum != null) {
         assertEquals(PostingsEnum.NO_MORE_DOCS, docsAndPositionsEnum.nextDoc());
       }

Modified: lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java Wed Feb 25 01:17:13 2015
@@ -1968,6 +1968,7 @@ public abstract class LuceneTestCase ext
    */
   public void assertDocsAndPositionsEnumEquals(String info, PostingsEnum leftDocs, PostingsEnum rightDocs) throws IOException {
     if (leftDocs == null || rightDocs == null) {
+      // nocommit: this should now only be for term or field not existing, is this assert used in that way?
       assertNull(leftDocs);
       assertNull(rightDocs);
       return;

Modified: lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java (original)
+++ lucene/dev/branches/lucene6271/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java Wed Feb 25 01:17:13 2015
@@ -1020,6 +1020,7 @@ public final class TestUtil {
           default: posFlags = PostingsEnum.ALL; break;
         }
         PostingsEnum docsAndPositions = termsEnum.postings(liveDocs, null, posFlags);
+        // nocommit: check
         if (docsAndPositions != null) {
           return docsAndPositions;
         }

Modified: lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java (original)
+++ lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java Wed Feb 25 01:17:13 2015
@@ -693,6 +693,7 @@ public class QueryElevationComponent ext
           term.copyChars(id);
           if (seen.contains(id) == false  && termsEnum.seekExact(term.get())) {
             postingsEnum = termsEnum.postings(liveDocs, postingsEnum, PostingsEnum.NONE);
+            // nocommit: check, maybe just remove null check?
             if (postingsEnum != null) {
               int docId = postingsEnum.nextDoc();
               if (docId == DocIdSetIterator.NO_MORE_DOCS ) continue;  // must have been deleted

Modified: lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1662157&r1=1662156&r2=1662157&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java Wed Feb 25 01:17:13 2015
@@ -798,6 +798,7 @@ public class SolrIndexSearcher extends I
       return -1;
     }
     PostingsEnum docs = termsEnum.postings(leafReader.getLiveDocs(), null, PostingsEnum.NONE);
+    // nocommit: check
     if (docs == null) return -1;
     int id = docs.nextDoc();
     return id == DocIdSetIterator.NO_MORE_DOCS ? -1 : id;
@@ -1169,6 +1170,7 @@ public class SolrIndexSearcher extends I
     FixedBitSet fbs = null;
 
     PostingsEnum postingsEnum = deState.termsEnum.postings(deState.liveDocs, deState.postingsEnum, PostingsEnum.NONE);
+    // nocommit: check
     if (deState.postingsEnum == null) {
       deState.postingsEnum = postingsEnum;
     }