[ https://issues.apache.org/jira/browse/LUCENE-1516?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Rutherglen updated LUCENE-1516: ------------------------------------- Attachment: LUCENE-1516.patch * In TestConcurrentMergeScheduler.testNoWaitClose I'm seeing a couple of exceptions. I'm not quite sure what to make of them. The testNoWaitClose method calls IW.close(false) a number of times on an IW that uses ConcurrentMergeScheduler. {code} [junit] Caused by: java.lang.AssertionError [junit] at org.apache.lucene.index.IndexFileDeleter$RefCount.DecRef(IndexFileDeleter.java:553) [junit] at org.apache.lucene.index.IndexFileDeleter.decRef(IndexFileDeleter.java:470) [junit] at org.apache.lucene.index.IndexFileDeleter.decRef(IndexFileDeleter.java:481) [junit] at org.apache.lucene.index.IndexWriter.decrefMergeSegments(IndexWriter.java:4485) [junit] at org.apache.lucene.index.IndexWriter.commitMerge(IndexWriter.java:4473) [junit] at org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4910) [junit] at org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4539) [junit] at org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:218) [junit] at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:274) {code} {code} [junit] java.lang.AssertionError [junit] at org.apache.lucene.index.IndexWriter.finishMerges(IndexWriter.java:3350) [junit] at org.apache.lucene.index.IndexWriter.closeInternal(IndexWriter.java:2090) [junit] at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:2045) [junit] at org.apache.lucene.index.TestConcurrentMergeScheduler.testNoWaitClose(TestConcurrentMergeScheduler.java:211) [junit] at org.apache.lucene.util.LuceneTestCase.runTest(LuceneTestCase.java:88) {code} > Integrate IndexReader with IndexWriter > --------------------------------------- > > Key: LUCENE-1516 > URL: https://issues.apache.org/jira/browse/LUCENE-1516 > Project: Lucene - Java > Issue Type: Improvement > Affects Versions: 2.4 > Reporter: Jason Rutherglen > Assignee: Michael McCandless > Priority: Minor > Fix For: 2.9 > > Attachments: LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, > LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, > LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, > LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch, > LUCENE-1516.patch, LUCENE-1516.patch, LUCENE-1516.patch > > Original Estimate: 672h > Remaining Estimate: 672h > > The current problem is an IndexReader and IndexWriter cannot be open > at the same time and perform updates as they both require a write > lock to the index. While methods such as IW.deleteDocuments enables > deleting from IW, methods such as IR.deleteDocument(int doc) and > norms updating are not available from IW. This limits the > capabilities of performing updates to the index dynamically or in > realtime without closing the IW and opening an IR, deleting or > updating norms, flushing, then opening the IW again, a process which > can be detrimental to realtime updates. > This patch will expose an IndexWriter.getReader method that returns > the currently flushed state of the index as a class that implements > IndexReader. The new IR implementation will differ from existing IR > implementations such as MultiSegmentReader in that flushing will > synchronize updates with IW in part by sharing the write lock. All > methods of IR will be usable including reopen and clone. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org