You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2013/09/24 13:10:19 UTC
svn commit: r1525851 - in /lucene/dev/trunk/lucene/core/src:
java/org/apache/lucene/index/FreqProxTermsWriter.java
test/org/apache/lucene/index/TestIndexWriter.java
Author: mikemccand
Date: Tue Sep 24 11:10:18 2013
New Revision: 1525851
URL: http://svn.apache.org/r1525851
Log:
LUCENE-5239: don't delete same term for the wrong field
Modified:
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java?rev=1525851&r1=1525850&r2=1525851&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java Tue Sep 24 11:10:18 2013
@@ -47,6 +47,8 @@ final class FreqProxTermsWriter extends
Terms terms = fields.terms(lastField);
if (terms != null) {
termsEnum = terms.iterator(termsEnum);
+ } else {
+ termsEnum = null;
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1525851&r1=1525850&r2=1525851&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Tue Sep 24 11:10:18 2013
@@ -2281,4 +2281,27 @@ public class TestIndexWriter extends Luc
evilWriter.close();
dir.close();
}
+
+ // LUCENE-5239
+ public void testDeleteSameTermAcrossFields() throws Exception {
+ Directory dir = newDirectory();
+ IndexWriterConfig iwc = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
+ IndexWriter w = new IndexWriter(dir, iwc);
+ Document doc = new Document();
+ doc.add(new TextField("a", "foo", Field.Store.NO));
+ w.addDocument(doc);
+
+ // Should not delete the document; with LUCENE-5239 the
+ // "foo" from the 2nd delete term would incorrectly
+ // match field a's "foo":
+ w.deleteDocuments(new Term("a", "xxx"));
+ w.deleteDocuments(new Term("b", "foo"));
+ IndexReader r = w.getReader();
+ w.close();
+
+ // Make sure document was not (incorrectly) deleted:
+ assertEquals(1, r.numDocs());
+ r.close();
+ dir.close();
+ }
}
Re: svn commit: r1525851 - in /lucene/dev/trunk/lucene/core/src:
java/org/apache/lucene/index/FreqProxTermsWriter.java test/org/apache/lucene/index/TestIndexWriter.java
Posted by Michael McCandless <lu...@mikemccandless.com>.
Good idea, I just backported it.
Mike McCandless
http://blog.mikemccandless.com
On Tue, Sep 24, 2013 at 9:35 AM, Robert Muir <rc...@gmail.com> wrote:
> Can we backport this test to 4.x?
>
> On Tue, Sep 24, 2013 at 4:10 AM, <mi...@apache.org> wrote:
>> Author: mikemccand
>> Date: Tue Sep 24 11:10:18 2013
>> New Revision: 1525851
>>
>> URL: http://svn.apache.org/r1525851
>> Log:
>> LUCENE-5239: don't delete same term for the wrong field
>>
>> Modified:
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java
>> lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
>>
>> Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java
>> URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java?rev=1525851&r1=1525850&r2=1525851&view=diff
>> ==============================================================================
>> --- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java (original)
>> +++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java Tue Sep 24 11:10:18 2013
>> @@ -47,6 +47,8 @@ final class FreqProxTermsWriter extends
>> Terms terms = fields.terms(lastField);
>> if (terms != null) {
>> termsEnum = terms.iterator(termsEnum);
>> + } else {
>> + termsEnum = null;
>> }
>> }
>>
>>
>> Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
>> URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1525851&r1=1525850&r2=1525851&view=diff
>> ==============================================================================
>> --- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
>> +++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Tue Sep 24 11:10:18 2013
>> @@ -2281,4 +2281,27 @@ public class TestIndexWriter extends Luc
>> evilWriter.close();
>> dir.close();
>> }
>> +
>> + // LUCENE-5239
>> + public void testDeleteSameTermAcrossFields() throws Exception {
>> + Directory dir = newDirectory();
>> + IndexWriterConfig iwc = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
>> + IndexWriter w = new IndexWriter(dir, iwc);
>> + Document doc = new Document();
>> + doc.add(new TextField("a", "foo", Field.Store.NO));
>> + w.addDocument(doc);
>> +
>> + // Should not delete the document; with LUCENE-5239 the
>> + // "foo" from the 2nd delete term would incorrectly
>> + // match field a's "foo":
>> + w.deleteDocuments(new Term("a", "xxx"));
>> + w.deleteDocuments(new Term("b", "foo"));
>> + IndexReader r = w.getReader();
>> + w.close();
>> +
>> + // Make sure document was not (incorrectly) deleted:
>> + assertEquals(1, r.numDocs());
>> + r.close();
>> + dir.close();
>> + }
>> }
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: dev-help@lucene.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org
Re: svn commit: r1525851 - in /lucene/dev/trunk/lucene/core/src:
java/org/apache/lucene/index/FreqProxTermsWriter.java test/org/apache/lucene/index/TestIndexWriter.java
Posted by Robert Muir <rc...@gmail.com>.
Can we backport this test to 4.x?
On Tue, Sep 24, 2013 at 4:10 AM, <mi...@apache.org> wrote:
> Author: mikemccand
> Date: Tue Sep 24 11:10:18 2013
> New Revision: 1525851
>
> URL: http://svn.apache.org/r1525851
> Log:
> LUCENE-5239: don't delete same term for the wrong field
>
> Modified:
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java
> lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
>
> Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java
> URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java?rev=1525851&r1=1525850&r2=1525851&view=diff
> ==============================================================================
> --- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java (original)
> +++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java Tue Sep 24 11:10:18 2013
> @@ -47,6 +47,8 @@ final class FreqProxTermsWriter extends
> Terms terms = fields.terms(lastField);
> if (terms != null) {
> termsEnum = terms.iterator(termsEnum);
> + } else {
> + termsEnum = null;
> }
> }
>
>
> Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
> URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1525851&r1=1525850&r2=1525851&view=diff
> ==============================================================================
> --- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
> +++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Tue Sep 24 11:10:18 2013
> @@ -2281,4 +2281,27 @@ public class TestIndexWriter extends Luc
> evilWriter.close();
> dir.close();
> }
> +
> + // LUCENE-5239
> + public void testDeleteSameTermAcrossFields() throws Exception {
> + Directory dir = newDirectory();
> + IndexWriterConfig iwc = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
> + IndexWriter w = new IndexWriter(dir, iwc);
> + Document doc = new Document();
> + doc.add(new TextField("a", "foo", Field.Store.NO));
> + w.addDocument(doc);
> +
> + // Should not delete the document; with LUCENE-5239 the
> + // "foo" from the 2nd delete term would incorrectly
> + // match field a's "foo":
> + w.deleteDocuments(new Term("a", "xxx"));
> + w.deleteDocuments(new Term("b", "foo"));
> + IndexReader r = w.getReader();
> + w.close();
> +
> + // Make sure document was not (incorrectly) deleted:
> + assertEquals(1, r.numDocs());
> + r.close();
> + dir.close();
> + }
> }
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org