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