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());