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