You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucenenet.apache.org by "Troy Howard (JIRA)" <ji...@apache.org> on 2011/02/20 04:22:38 UTC
[jira] Updated: (LUCENENET-374) IndexReader.IsCurrent returning
false positive in some cases
[ https://issues.apache.org/jira/browse/LUCENENET-374?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Troy Howard updated LUCENENET-374:
----------------------------------
Component/s: Lucene.Net Core
Due Date: 28/Mar/11
Environment: Lucene 2.9.2 (was: Lucene 2.9.2.2)
Affects Version/s: Lucene.Net 2.9.2
Fix Version/s: Lucene.Net 2.9.4
Scheduled for 2.9.4 release.
> IndexReader.IsCurrent returning false positive in some cases
> ------------------------------------------------------------
>
> Key: LUCENENET-374
> URL: https://issues.apache.org/jira/browse/LUCENENET-374
> Project: Lucene.Net
> Issue Type: Bug
> Components: Lucene.Net Core
> Affects Versions: Lucene.Net 2.9.2
> Environment: Lucene 2.9.2
> Reporter: Paul Gunn
> Fix For: Lucene.Net 2.9.4
>
> Attachments: SegmentInfo.patch
>
>
> I've isolated the issue to a pretty small test case [below].
> Under the covers, it looks like NrtIsCurrent is returning 'true' incorrectly when documents are deleted & then committed [but before any other documents are added].
> Please let me know if any addition data is needed to repro. Thanks, Paul
> Lucene.Net.Store.RAMDirectory ramDir = new Lucene.Net.Store.RAMDirectory();
> Lucene.Net.Index.IndexWriter writer = new Lucene.Net.Index.IndexWriter(ramDir, new Lucene.Net.Analysis.KeywordAnalyzer(), true, new Lucene.Net.Index.IndexWriter.MaxFieldLength(1000) );
> Lucene.Net.Documents.Field field = new Lucene.Net.Documents.Field("TEST", "mytest",
> Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.ANALYZED);
> Lucene.Net.Documents.Document doc = new Lucene.Net.Documents.Document();
> doc.Add(field);
> writer.AddDocument(doc);
> Lucene.Net.Index.IndexReader reader = writer.GetReader();
> writer.DeleteDocuments(new Lucene.Net.Index.Term("TEST", "mytest"));
> bool iscurrent1 = reader.IsCurrent(); // FALSE as expected
> writer.Commit();
> bool iscurrent2 = reader.IsCurrent(); // returns TRUE now - Incorrect
> System.Diagnostics.Debug.Assert(iscurrent1 == iscurrent2); // ASSERT FAILs
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira