Author: marrs
Date: Wed Jun 6 08:10:43 2007
New Revision: 544863
URL: http://svn.apache.org/viewvc?view=rev&rev=544863
Log:
Fixed a concurrency issue.
Modified:
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ConfigurationDependency.java
Modified:
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ConfigurationDependency.java
URL:
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ConfigurationDependency.java?view=diff&rev=544863&r1=544862&r2=544863
==============================================================================
---
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ConfigurationDependency.java
(original)
+++
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ConfigurationDependency.java
Wed Jun 6 08:10:43 2007
@@ -58,7 +58,7 @@
m_context = context;
}
- public boolean isAvailable() {
+ public synchronized boolean isAvailable() {
return m_settings != null;
}
@@ -100,8 +100,11 @@
}
// if these settings did not cause a configuration exception,
we determine
// if they have caused the dependency state to change
- Dictionary oldSettings = m_settings;
- m_settings = settings;
+ Dictionary oldSettings = null;
+ synchronized (this) {
+ oldSettings = m_settings;
+ m_settings = settings;
+ }
if ((oldSettings == null) && (settings != null)) {
m_service.dependencyAvailable(this);
}