[jboss-svn-commits] JBL Code SVN: r27008 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/couriers.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 18 08:42:13 EDT 2009


Author: kevin.conner at jboss.com
Date: 2009-06-18 08:42:13 -0400 (Thu, 18 Jun 2009)
New Revision: 27008

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java
Log:
Fix synchronisation around lifecycle resource methods: JBESB-2512

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java	2009-06-18 12:24:47 UTC (rev 27007)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java	2009-06-18 12:42:13 UTC (rev 27008)
@@ -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)
             {




More information about the jboss-svn-commits mailing list