[ 
https://issues.apache.org/jira/browse/GERONIMO-3780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12570780#action_12570780
 ] 

Jarek Gawor commented on GERONIMO-3780:
---------------------------------------

If I'm understanding the code correctly, there is a chance with this patch 
where the notifyAll() is called before another thread enters wait() and 
therefore that thread will block until another notifyAll() is called.
Assume thread A gets suspended just before executing 
"deploymentInfo.set(EjbDeployment.class, this);" line and thread B gets 
suspended right after executing "if (deploymentInfo.get(EjbDeployment.class) == 
null ){" line. Now, A gets awaken and it finishes executing the start() method 
(and notifyAll() is called) then thread B awakens and continues executing and 
it enters the wait() method.  Since notifyAll() was already called, thread B 
will just block until some other thread calls notifyAll() (which might not 
happen for a while or at all).


> MDB unable to access JNDI in ejbPostCreate
> ------------------------------------------
>
>                 Key: GERONIMO-3780
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-3780
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: OpenEJB
>    Affects Versions: 2.1
>         Environment: All
>            Reporter: Manu T George
>         Attachments: G3780-r628632.patch
>
>
> An MDB is unable to access JNDI in ejbPostCreate if there are messages in the 
> queue to which it is listening during server startup, say after a server 
> crash 

-- 
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