[jboss-remoting-issues] [JBoss JIRA] Commented: (JBREM-1218) ConnectionValidator.isValid should be volatile

David Lloyd (JIRA) jira-events at lists.jboss.org
Thu Apr 8 00:03:37 EDT 2010


    [ https://jira.jboss.org/jira/browse/JBREM-1218?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12524448#action_12524448 ] 

David Lloyd commented on JBREM-1218:
------------------------------------

If the same object is synchronized upon when the variable is written as when it's read (as is implied by the wait/notifyAll you describe), this has the same memory visibility effects as "volatile".

> ConnectionValidator.isValid should be volatile
> ----------------------------------------------
>
>                 Key: JBREM-1218
>                 URL: https://jira.jboss.org/jira/browse/JBREM-1218
>             Project: JBoss Remoting
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 2.5.2.SP2 (Flounder), 2.2.3.SP2
>            Reporter: Ron Sigal
>            Assignee: Ron Sigal
>             Fix For: 2.5.2.SP3 (Flounder), 2.2.3.SP3
>
>
> org.jboss.remoting.ConnectionValidator's variable isValid is set in run(), which runs in one thread, and is read in ConnectionValidator.WaitOnConnectionCheckTimerTask.run(), which runs in another thread.  After ConnectionValidator.run()  sets isValid, is calls notifyAll() on a lock, which wakes up WaitOnConnectionCheckTimerTask.run(), which then looks at the value of isValid.  It's possible for the most recent value of isValid to not yet be visible to WaitOnConnectionCheckTimerTask.run().

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-remoting-issues mailing list