[jboss-svn-commits] JBL Code SVN: r8671 - labs/jbossesb/trunk/product/core/listeners/src/org/jboss/internal/soa/esb/listeners
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 3 13:31:40 EST 2007
Author: kevin.conner at jboss.com
Date: 2007-01-03 13:31:39 -0500 (Wed, 03 Jan 2007)
New Revision: 8671
Modified:
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/internal/soa/esb/listeners/DefaultListenerManager.java
Log:
Fixed race condition for listener wait
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/internal/soa/esb/listeners/DefaultListenerManager.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/internal/soa/esb/listeners/DefaultListenerManager.java 2007-01-03 18:09:28 UTC (rev 8670)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/internal/soa/esb/listeners/DefaultListenerManager.java 2007-01-03 18:31:39 UTC (rev 8671)
@@ -325,9 +325,9 @@
{
synchronized (_synchAllReady)
{
+ _childrenStarted = new HashMap<AbstractManagedListener, Boolean>();
if (_config != null)
{
- _childrenStarted = new HashMap<AbstractManagedListener, Boolean>();
for (ConfigTree oCurr : _config.getAllChildren())
{
String sClass = oCurr.getAttribute(PARM_LISTENER_CLASS);
@@ -339,6 +339,7 @@
tryToLaunchChildListener(oCurr, sClass);
}
}
+ _synchAllReady.notifyAll() ;
}
try { waitUntilReady(1000); }
catch (InterruptedException e) { continue; }
@@ -747,21 +748,31 @@
do
{
Collection<Boolean> allStarted = null;
-
+
+
synchronized (_synchAllReady)
{
- allStarted = ((_childrenStarted == null) ? null : _childrenStarted.values());
+ while(_childrenStarted == null)
+ {
+ final long timeout = runUntil - System.currentTimeMillis() ;
+ if (timeout > 0)
+ {
+ _synchAllReady.wait(timeout) ;
+ }
+ else
+ {
+ throw new InterruptedException();
+ }
+ }
+ allStarted = _childrenStarted.values();
}
someChildPending = false;
- if (allStarted != null)
+ for (Boolean curr : allStarted)
{
- for (Boolean curr : allStarted)
- {
- if (!Boolean.TRUE.equals(curr))
- someChildPending = true;
- }
+ if (!Boolean.TRUE.equals(curr))
+ someChildPending = true;
}
if (someChildPending)
More information about the jboss-svn-commits
mailing list