You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2009/01/23 14:21:28 UTC

svn commit: r737020 - /servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/EndpointRegistryImpl.java

Author: gnodet
Date: Fri Jan 23 05:21:28 2009
New Revision: 737020

URL: http://svn.apache.org/viewvc?rev=737020&view=rev
Log:
SMX4NMR-60: EndpointRegistryImpl is not thread safe

Modified:
    servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/EndpointRegistryImpl.java

Modified: servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/EndpointRegistryImpl.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/EndpointRegistryImpl.java?rev=737020&r1=737019&r2=737020&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/EndpointRegistryImpl.java (original)
+++ servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/EndpointRegistryImpl.java Fri Jan 23 05:21:28 2009
@@ -107,8 +107,10 @@
             for (EndpointListener listener : nmr.getListenerRegistry().getListeners(EndpointListener.class)) {
                 listener.endpointRegistered(wrapper);
             }
-            for (DynamicReferenceImpl ref : references.keySet()) {
-                ref.setDirty();
+            synchronized (this.references) {
+                for (DynamicReferenceImpl ref : references.keySet()) {
+                    ref.setDirty();
+                }
             }
         }
     }
@@ -141,8 +143,10 @@
                 listener.endpointUnregistered(wrapper);
             }
         }
-        for (DynamicReferenceImpl ref : references.keySet()) {
-            ref.setDirty();
+        synchronized (this.references) {
+            for (DynamicReferenceImpl ref : references.keySet()) {
+                ref.setDirty();
+            }
         }
     }
 
@@ -206,7 +210,9 @@
                 return properties.toString();
             }
         });
-        this.references.put(ref, true);
+        synchronized (this.references) {
+            this.references.put(ref, true);
+        }
         return ref;
     }
 
@@ -242,7 +248,9 @@
                         return filter;
                     }
                 });
-                this.references.put(ref, true);
+                synchronized (this.references) {
+                    this.references.put(ref, true);
+                }
                 return ref;
             } catch (org.osgi.framework.InvalidSyntaxException e) {
                 throw new ServiceMixException("Invalid filter syntax: " + e.getMessage());