You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2021/11/18 18:09:41 UTC
[lucenenet] branch master updated: BUG: Modified all TermsEnum.MoveNext() methods to return a check for null term rather than simply returning true, which is invalid if the term is null
This is an automated email from the ASF dual-hosted git repository.
nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git
The following commit(s) were added to refs/heads/master by this push:
new dc4958f BUG: Modified all TermsEnum.MoveNext() methods to return a check for null term rather than simply returning true, which is invalid if the term is null
dc4958f is described below
commit dc4958f06199a1185c847c7530cb6921eda62309
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Nov 13 16:38:23 2021 +0700
BUG: Modified all TermsEnum.MoveNext() methods to return a check for null term rather than simply returning true, which is invalid if the term is null
---
.../BlockTerms/BlockTermsReader.cs | 2 +-
.../Bloom/BloomFilteringPostingsFormat.cs | 24 +++++++++++-----------
src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs | 6 +++---
src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs | 6 +++---
.../Memory/MemoryDocValuesProducer.cs | 4 +++-
.../Memory/MemoryPostingsFormat.cs | 2 +-
.../SimpleText/SimpleTextFieldsReader.cs | 2 +-
.../SimpleText/SimpleTextTermVectorsReader.cs | 2 +-
.../MemoryIndex.MemoryIndexReader.cs | 2 +-
.../Codecs/RAMOnly/RAMOnlyPostingsFormat.cs | 4 ++--
.../Index/AssertingAtomicReader.cs | 2 +-
src/Lucene.Net/Codecs/BlockTreeTermsReader.cs | 2 +-
.../Compressing/CompressingTermVectorsReader.cs | 2 +-
src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs | 2 +-
.../Codecs/Lucene3x/Lucene3xTermVectorsReader.cs | 2 +-
.../Codecs/Lucene40/Lucene40TermVectorsReader.cs | 2 +-
.../Codecs/Lucene42/Lucene42DocValuesProducer.cs | 7 ++++++-
.../Codecs/Lucene45/Lucene45DocValuesProducer.cs | 2 +-
src/Lucene.Net/Index/FilterAtomicReader.cs | 6 ++++--
src/Lucene.Net/Index/FilteredTermsEnum.cs | 4 ++--
src/Lucene.Net/Index/SortedDocValuesTermsEnum.cs | 4 ++--
.../Index/SortedSetDocValuesTermsEnum.cs | 4 ++--
src/Lucene.Net/Search/FuzzyTermsEnum.cs | 2 +-
23 files changed, 52 insertions(+), 43 deletions(-)
diff --git a/src/Lucene.Net.Codecs/BlockTerms/BlockTermsReader.cs b/src/Lucene.Net.Codecs/BlockTerms/BlockTermsReader.cs
index f310fb9..215ae43 100644
--- a/src/Lucene.Net.Codecs/BlockTerms/BlockTermsReader.cs
+++ b/src/Lucene.Net.Codecs/BlockTerms/BlockTermsReader.cs
@@ -707,7 +707,7 @@ namespace Lucene.Net.Codecs.BlockTerms
// NOTE: meaningless in the non-ord case
state.Ord++;
- return true;
+ return term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net.Codecs/Bloom/BloomFilteringPostingsFormat.cs b/src/Lucene.Net.Codecs/Bloom/BloomFilteringPostingsFormat.cs
index 28908e3..1f59b28 100644
--- a/src/Lucene.Net.Codecs/Bloom/BloomFilteringPostingsFormat.cs
+++ b/src/Lucene.Net.Codecs/Bloom/BloomFilteringPostingsFormat.cs
@@ -287,7 +287,7 @@ namespace Lucene.Net.Codecs.Bloom
delegateTermsEnum = null;
}
- private TermsEnum Delegate =>
+ private TermsEnum @delegate =>
// pull the iterator only if we really need it -
// this can be a relativly heavy operation depending on the
// delegate postings format and they underlying directory
@@ -296,13 +296,13 @@ namespace Lucene.Net.Codecs.Bloom
public override bool MoveNext()
{
- return Delegate.MoveNext();
+ return @delegate.MoveNext();
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public override sealed BytesRef Next()
{
- return Delegate.Next();
+ return @delegate.Next();
}
public override sealed IComparer<BytesRef> Comparer => _delegateTerms.Comparer;
@@ -318,36 +318,36 @@ namespace Lucene.Net.Codecs.Bloom
{
return false;
}
- return Delegate.SeekExact(text);
+ return @delegate.SeekExact(text);
}
public override sealed SeekStatus SeekCeil(BytesRef text)
{
- return Delegate.SeekCeil(text);
+ return @delegate.SeekCeil(text);
}
public override sealed void SeekExact(long ord)
{
- Delegate.SeekExact(ord);
+ @delegate.SeekExact(ord);
}
- public override sealed BytesRef Term => Delegate.Term;
+ public override sealed BytesRef Term => @delegate.Term;
- public override sealed long Ord => Delegate.Ord;
+ public override sealed long Ord => @delegate.Ord;
- public override sealed int DocFreq => Delegate.DocFreq;
+ public override sealed int DocFreq => @delegate.DocFreq;
- public override sealed long TotalTermFreq => Delegate.TotalTermFreq;
+ public override sealed long TotalTermFreq => @delegate.TotalTermFreq;
public override DocsAndPositionsEnum DocsAndPositions(IBits liveDocs,
DocsAndPositionsEnum reuse, DocsAndPositionsFlags flags)
{
- return Delegate.DocsAndPositions(liveDocs, reuse, flags);
+ return @delegate.DocsAndPositions(liveDocs, reuse, flags);
}
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags)
{
- return Delegate.Docs(liveDocs, reuse, flags);
+ return @delegate.Docs(liveDocs, reuse, flags);
}
}
diff --git a/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs b/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs
index 48007df..acd099e 100644
--- a/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs
+++ b/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs
@@ -514,7 +514,7 @@ namespace Lucene.Net.Codecs.Memory
}
decoded = false;
seekPending = false;
- return moved;
+ return moved && term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
@@ -664,7 +664,7 @@ namespace Lucene.Net.Codecs.Memory
{
pending = false;
DecodeStats();
- return true;
+ return term != null;
}
decoded = false;
while (level > 0)
@@ -698,7 +698,7 @@ namespace Lucene.Net.Codecs.Memory
}
DFSBreak:
DecodeStats();
- return true;
+ return term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs b/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs
index 3a3a9fc..d558c0c 100644
--- a/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs
+++ b/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs
@@ -386,7 +386,7 @@ namespace Lucene.Net.Codecs.Memory
}
decoded = false;
seekPending = false;
- return moved;
+ return moved && term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
@@ -582,7 +582,7 @@ namespace Lucene.Net.Codecs.Memory
{
pending = false;
LoadMetaData();
- return true;
+ return term != null;
}
decoded = false;
while (level > 0)
@@ -616,7 +616,7 @@ namespace Lucene.Net.Codecs.Memory
}
DFSBreak:
LoadMetaData();
- return true;
+ return term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net.Codecs/Memory/MemoryDocValuesProducer.cs b/src/Lucene.Net.Codecs/Memory/MemoryDocValuesProducer.cs
index afff0f1..8210227 100644
--- a/src/Lucene.Net.Codecs/Memory/MemoryDocValuesProducer.cs
+++ b/src/Lucene.Net.Codecs/Memory/MemoryDocValuesProducer.cs
@@ -779,7 +779,9 @@ namespace Lucene.Net.Codecs.Memory
public override bool MoveNext()
{
- return input.MoveNext();
+ if (input.MoveNext())
+ return input.Current.Input != null;
+ return false;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs b/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs
index 4494b5a..ab012c0 100644
--- a/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs
+++ b/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs
@@ -841,7 +841,7 @@ namespace Lucene.Net.Codecs.Memory
current = fstEnum.Current;
didDecode = false;
//System.out.println(" term=" + field.name + ":" + current.input.utf8ToString());
- return true;
+ return current != null;
}
current = null;
//System.out.println(" END");
diff --git a/src/Lucene.Net.Codecs/SimpleText/SimpleTextFieldsReader.cs b/src/Lucene.Net.Codecs/SimpleText/SimpleTextFieldsReader.cs
index 01e9897..b85f22c 100644
--- a/src/Lucene.Net.Codecs/SimpleText/SimpleTextFieldsReader.cs
+++ b/src/Lucene.Net.Codecs/SimpleText/SimpleTextFieldsReader.cs
@@ -168,7 +168,7 @@ namespace Lucene.Net.Codecs.SimpleText
_docsStart = pair1.Output1.Value;
_docFreq = (int)pair2.Output1;
_totalTermFreq = pair2.Output2.Value;
- return true;
+ return _fstEnum.Current.Input != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net.Codecs/SimpleText/SimpleTextTermVectorsReader.cs b/src/Lucene.Net.Codecs/SimpleText/SimpleTextTermVectorsReader.cs
index fb71bcc..6552273 100644
--- a/src/Lucene.Net.Codecs/SimpleText/SimpleTextTermVectorsReader.cs
+++ b/src/Lucene.Net.Codecs/SimpleText/SimpleTextTermVectorsReader.cs
@@ -391,7 +391,7 @@ namespace Lucene.Net.Codecs.SimpleText
if (_iterator.MoveNext())
{
_current = _iterator.Current;
- return true;
+ return _current.Key != null;
}
else
{
diff --git a/src/Lucene.Net.Memory/MemoryIndex.MemoryIndexReader.cs b/src/Lucene.Net.Memory/MemoryIndex.MemoryIndexReader.cs
index 20ea486..5fa32b6 100644
--- a/src/Lucene.Net.Memory/MemoryIndex.MemoryIndexReader.cs
+++ b/src/Lucene.Net.Memory/MemoryIndex.MemoryIndexReader.cs
@@ -301,7 +301,7 @@ namespace Lucene.Net.Index.Memory
else
{
info.terms.Get(info.sortedTerms[termUpto], br);
- return true;
+ return br != null;
}
}
diff --git a/src/Lucene.Net.TestFramework/Codecs/RAMOnly/RAMOnlyPostingsFormat.cs b/src/Lucene.Net.TestFramework/Codecs/RAMOnly/RAMOnlyPostingsFormat.cs
index 6e1598c..4f83a6f 100644
--- a/src/Lucene.Net.TestFramework/Codecs/RAMOnly/RAMOnlyPostingsFormat.cs
+++ b/src/Lucene.Net.TestFramework/Codecs/RAMOnly/RAMOnlyPostingsFormat.cs
@@ -367,7 +367,7 @@ namespace Lucene.Net.Codecs.RAMOnly
if (it.MoveNext())
{
current = it.Current;
- return true;
+ return current != null;
}
else
{
@@ -427,7 +427,7 @@ namespace Lucene.Net.Codecs.RAMOnly
=> throw UnsupportedOperationException.Create();
// TODO: reuse BytesRef
- public override BytesRef Term => new BytesRef(current);
+ public override BytesRef Term => current is null ? null : new BytesRef(current);
public override int DocFreq
=> ramField.termToDocs[current].docs.Count;
diff --git a/src/Lucene.Net.TestFramework/Index/AssertingAtomicReader.cs b/src/Lucene.Net.TestFramework/Index/AssertingAtomicReader.cs
index 7ed3d5d..a3b11da 100644
--- a/src/Lucene.Net.TestFramework/Index/AssertingAtomicReader.cs
+++ b/src/Lucene.Net.TestFramework/Index/AssertingAtomicReader.cs
@@ -454,7 +454,7 @@ namespace Lucene.Net.Index
{
if (Debugging.AssertsEnabled) Debugging.Assert(base.Term.IsValid());
state = State.POSITIONED;
- return true;
+ return base.Term != null;
}
}
diff --git a/src/Lucene.Net/Codecs/BlockTreeTermsReader.cs b/src/Lucene.Net/Codecs/BlockTreeTermsReader.cs
index 4126472..2aa33dc 100644
--- a/src/Lucene.Net/Codecs/BlockTreeTermsReader.cs
+++ b/src/Lucene.Net/Codecs/BlockTreeTermsReader.cs
@@ -2472,7 +2472,7 @@ namespace Lucene.Net.Codecs
else
{
//if (DEBUG) System.out.println(" return term=" + term.utf8ToString() + " " + term + " currentFrame.ord=" + currentFrame.ord);
- return true;
+ return term != null;
}
}
}
diff --git a/src/Lucene.Net/Codecs/Compressing/CompressingTermVectorsReader.cs b/src/Lucene.Net/Codecs/Compressing/CompressingTermVectorsReader.cs
index a6e60f8..d32f69d 100644
--- a/src/Lucene.Net/Codecs/Compressing/CompressingTermVectorsReader.cs
+++ b/src/Lucene.Net/Codecs/Compressing/CompressingTermVectorsReader.cs
@@ -865,7 +865,7 @@ namespace Lucene.Net.Codecs.Compressing
}
@in.ReadBytes(term.Bytes, prefixLengths[ord], suffixLengths[ord]);
- return true;
+ return term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs b/src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs
index 215d488..2a31858 100644
--- a/src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs
+++ b/src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs
@@ -995,7 +995,7 @@ namespace Lucene.Net.Codecs.Lucene3x
else
{
current = termEnum.Term().Bytes;
- return true;
+ return current != null;
}
}
diff --git a/src/Lucene.Net/Codecs/Lucene3x/Lucene3xTermVectorsReader.cs b/src/Lucene.Net/Codecs/Lucene3x/Lucene3xTermVectorsReader.cs
index 4451668..ec031cb 100644
--- a/src/Lucene.Net/Codecs/Lucene3x/Lucene3xTermVectorsReader.cs
+++ b/src/Lucene.Net/Codecs/Lucene3x/Lucene3xTermVectorsReader.cs
@@ -564,7 +564,7 @@ namespace Lucene.Net.Codecs.Lucene3x
{
return false;
}
- return true;
+ return termAndPostings[currentTerm].Term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net/Codecs/Lucene40/Lucene40TermVectorsReader.cs b/src/Lucene.Net/Codecs/Lucene40/Lucene40TermVectorsReader.cs
index f2079f8..dc5477e 100644
--- a/src/Lucene.Net/Codecs/Lucene40/Lucene40TermVectorsReader.cs
+++ b/src/Lucene.Net/Codecs/Lucene40/Lucene40TermVectorsReader.cs
@@ -541,7 +541,7 @@ namespace Lucene.Net.Codecs.Lucene40
lastTerm.CopyBytes(term);
nextTerm++;
- return true;
+ return term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net/Codecs/Lucene42/Lucene42DocValuesProducer.cs b/src/Lucene.Net/Codecs/Lucene42/Lucene42DocValuesProducer.cs
index 7a9df8a..590eac8 100644
--- a/src/Lucene.Net/Codecs/Lucene42/Lucene42DocValuesProducer.cs
+++ b/src/Lucene.Net/Codecs/Lucene42/Lucene42DocValuesProducer.cs
@@ -755,7 +755,12 @@ namespace Lucene.Net.Codecs.Lucene42
bytesReader = fst.GetBytesReader();
}
- public override bool MoveNext() => @in.MoveNext();
+ public override bool MoveNext()
+ {
+ if (@in.MoveNext())
+ return @in.Current.Input != null;
+ return false;
+ }
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public override BytesRef Next()
diff --git a/src/Lucene.Net/Codecs/Lucene45/Lucene45DocValuesProducer.cs b/src/Lucene.Net/Codecs/Lucene45/Lucene45DocValuesProducer.cs
index 36b9d6a..071672b 100644
--- a/src/Lucene.Net/Codecs/Lucene45/Lucene45DocValuesProducer.cs
+++ b/src/Lucene.Net/Codecs/Lucene45/Lucene45DocValuesProducer.cs
@@ -1123,7 +1123,7 @@ namespace Lucene.Net.Codecs.Lucene45
input.ReadBytes(termBuffer.Bytes, start, suffix);
termBuffer.Length = start + suffix;
SetTerm();
- return true;
+ return true; // LUCENENET: term is readonly so cannot be null
}
}
diff --git a/src/Lucene.Net/Index/FilterAtomicReader.cs b/src/Lucene.Net/Index/FilterAtomicReader.cs
index db9e359..a113ec4 100644
--- a/src/Lucene.Net/Index/FilterAtomicReader.cs
+++ b/src/Lucene.Net/Index/FilterAtomicReader.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
@@ -163,7 +163,9 @@ namespace Lucene.Net.Index
public override bool MoveNext()
{
- return m_input.MoveNext();
+ if (m_input.MoveNext())
+ return m_input.Term != null;
+ return false;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net/Index/FilteredTermsEnum.cs b/src/Lucene.Net/Index/FilteredTermsEnum.cs
index 0938130..df81bf1 100644
--- a/src/Lucene.Net/Index/FilteredTermsEnum.cs
+++ b/src/Lucene.Net/Index/FilteredTermsEnum.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Diagnostics;
+using Lucene.Net.Diagnostics;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -257,7 +257,7 @@ namespace Lucene.Net.Index
goto case FilteredTermsEnum.AcceptStatus.YES;
case FilteredTermsEnum.AcceptStatus.YES:
// term accepted
- return true;
+ return actualTerm != null;
case FilteredTermsEnum.AcceptStatus.NO_AND_SEEK:
// invalid term, seek next time
diff --git a/src/Lucene.Net/Index/SortedDocValuesTermsEnum.cs b/src/Lucene.Net/Index/SortedDocValuesTermsEnum.cs
index 8b7e8db..ccba8c6 100644
--- a/src/Lucene.Net/Index/SortedDocValuesTermsEnum.cs
+++ b/src/Lucene.Net/Index/SortedDocValuesTermsEnum.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Diagnostics;
+using Lucene.Net.Diagnostics;
using System;
using System.Collections.Generic;
@@ -107,7 +107,7 @@ namespace Lucene.Net.Index
return false;
}
values.LookupOrd(currentOrd, term);
- return true;
+ return term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net/Index/SortedSetDocValuesTermsEnum.cs b/src/Lucene.Net/Index/SortedSetDocValuesTermsEnum.cs
index 1f51b6e..73bb2bc 100644
--- a/src/Lucene.Net/Index/SortedSetDocValuesTermsEnum.cs
+++ b/src/Lucene.Net/Index/SortedSetDocValuesTermsEnum.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Diagnostics;
+using Lucene.Net.Diagnostics;
using System;
using System.Collections.Generic;
@@ -107,7 +107,7 @@ namespace Lucene.Net.Index
return false;
}
values.LookupOrd(currentOrd, term);
- return true;
+ return term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/Lucene.Net/Search/FuzzyTermsEnum.cs b/src/Lucene.Net/Search/FuzzyTermsEnum.cs
index 58db0c1..842da5b 100644
--- a/src/Lucene.Net/Search/FuzzyTermsEnum.cs
+++ b/src/Lucene.Net/Search/FuzzyTermsEnum.cs
@@ -295,7 +295,7 @@ namespace Lucene.Net.Search
queuedBottom = BytesRef.DeepCopyOf(actualEnum.Term);
}
- return moved;
+ return moved && actualEnum.Term != null;
}
[Obsolete("Use MoveNext() and Term instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]