You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2007/06/06 17:10:44 UTC

svn commit: r544863 - /felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ConfigurationDependency.java

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