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