[jboss-svn-commits] JBL Code SVN: r26988 - in labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb: lifecycle and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 17 00:50:49 EDT 2009


Author: beve
Date: 2009-06-17 00:50:49 -0400 (Wed, 17 Jun 2009)
New Revision: 26988

Modified:
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java
   labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java
Log:
Added fix for JBESB-2514 "CourierFactory synchronizes around access to lifecycle resource"


Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java	2009-06-17 03:29:44 UTC (rev 26987)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java	2009-06-17 04:50:49 UTC (rev 26988)
@@ -187,7 +187,7 @@
          * Register the courier as part of the current set.
          * @param courier The current courier.
          */
-        private static synchronized void registerCourier(final TwoWayCourier courier)
+        private static void registerCourier(final TwoWayCourier courier)
             throws CourierException
         {
             final Exception ex ;
@@ -199,25 +199,37 @@
             {
                 ex = null ;
             }
+            final Map<TwoWayCourier, Exception> map;
             try
             {
-                lifecycleCouriers.getLifecycleResource().put(courier, ex) ;
+                map = lifecycleCouriers.getLifecycleResource();
             }
             catch (final LifecycleResourceException lre)
             {
                 throw new CourierException("Unexpected lifecycle resource exception while registering courier", lre) ;
             }
+            
+            synchronized (map)
+            {
+                map.put(courier, ex);
+            }
         }
         
         /**
          * Deregister the courier from the current set.
          * @param courier The current courier.
          */
-        public static synchronized void deregisterCourier(final TwoWayCourier courier)
+        public static void deregisterCourier(final TwoWayCourier courier)
         {
+            final Map<TwoWayCourier, Exception> map;
             try
             {
-                lifecycleCouriers.getLifecycleResource().remove(courier) ;
+                map = lifecycleCouriers.getLifecycleResource();
+                
+                synchronized (map)
+                {
+                        map.remove(courier);
+                }
             }
             catch (final LifecycleResourceException lre)
             {

Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java	2009-06-17 03:29:44 UTC (rev 26987)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java	2009-06-17 04:50:49 UTC (rev 26988)
@@ -62,9 +62,7 @@
     static
     {
         // Initialise the shutdown hook in case we are not in an ESB.
-        // Causes a deadlock when running in JBossAS5
-        // TODO: can we get around the deadlock somehow?
-        //Runtime.getRuntime().addShutdownHook(cleanupHook) ;
+        Runtime.getRuntime().addShutdownHook(cleanupHook) ;
     }
     
     /**




More information about the jboss-svn-commits mailing list