[ https://issues.apache.org/jira/browse/LUCENE-818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12477457 ]
Yonik Seeley commented on LUCENE-818: ------------------------------------- > Then, the error is something strange (eg confusing NullPointerException) > which doesn't make it clear what's happened. I think that depends on context. Many cases of NPEs are perfectly clear when you look at the stack trace. > In the IndexWriter case it's potentially devastating Agreed... when it affects correctness, we should fix. Adding ensureOpen() to something like maxDoc() does not ensure correctness though - an exception may or may not be thrown in the reader is already closed (because of those thread-safety issues). It actually increases the variability of behavior. We need to be careful not to guarantee the throwing of the exception. > especially common seems to be iterating through Hits after the reader is > closed Good point, for document() esp. I'm OK with the heavyweight methods. > Maybe we could remove checking for clearly frequently called methods (eg > isDeleted)? That's one of the ones I had in mind... isDeleted() can be called millions of times for a single query. Probably numDoc(), maxDoc(), etc, are also candidates. Earlier detection of bugs when the cost is nil is good though... what about setting more things to null when a reader is closed? > IndexWriter should detect when it's used after being closed > ----------------------------------------------------------- > > Key: LUCENE-818 > URL: https://issues.apache.org/jira/browse/LUCENE-818 > Project: Lucene - Java > Issue Type: Bug > Components: Index > Affects Versions: 2.1 > Reporter: Michael McCandless > Assigned To: Michael McCandless > Priority: Minor > Attachments: LUCENE-818.patch, LUCENE-818.take2.patch > > > Spinoff from this thread on java-user: > http://www.gossamer-threads.com/lists/lucene/java-user/45986 > If you call addDocument on IndexWriter after it's closed you'll hit a > hard-to-explain NullPointerException (because the RAMDirectory was > closed). Before 2.1, apparently you won't hit any exception and the > IndexWrite will keep running but will have released it's write lock (I > think). > I plan to fix IndexWriter methods to throw an IllegalStateException if > it has been closed. -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]