[ 
https://issues.apache.org/jira/browse/LUCENENET-135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615044#action_12615044
 ] 

Digy commented on LUCENENET-135:
--------------------------------

ok. I got it.

The problem is that java's synchronized methods are converted as
{code}
void method()
{
    lock(this)
    {
        ....
    }
}
{code}
which is internally implemented as(Monitor.Enter & Monitor.Exit) and java's 
wait & notify methods are translated as Monitor.Wait & Monitor.PulseAll.

So a method in lock-block and calling Monitor.Wait sends continue-signal to all 
methods waiting for lock.

I think, patch will not be small.

DIGY

> Race condition in DocumentsWriter.UpdateDocument
> ------------------------------------------------
>
>                 Key: LUCENENET-135
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-135
>             Project: Lucene.Net
>          Issue Type: Bug
>         Environment: 2.3.1
>            Reporter: Digy
>         Attachments: DocumentsWriter-Temp.patch
>
>
> There is a race condition in DocumentsWriter.UpdateDocument. Locking the 
> whole method solves the problem but this is not what  is intended in java 
> version
> (testcase:  Index/TestIndexWriter/TestDocumentsWriterExceptionThreads)
> I am working on it.
> DIGY

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to