[
https://issues.apache.org/jira/browse/LUCENE-818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12477724
]
Yonik Seeley commented on LUCENE-818:
-------------------------------------
> Yikes. Is this the Java memory model issue?
Yes, but it's not a problem with the Java memory model, it's more of a feature.
Threads in general have this problem (or perform very poorly if they don't).
It's also very much about compiler optimizations as well. The optimizer may
stuff a value in a register, and never check it's location in main-memory, and
never see the changes. Even if it doesn't then you drop down to problems with
the CPU and cache + memory architectue in SMP systems. Some systems require
explicit memory barriers or cache flushes to see memory changes from another
CPU. One CPU writes to a spot in memory, and absent any special instructions,
another CPU reading from that spot in memory may not see the change.
> 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]