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


Reply via email to