You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2007/03/19 18:03:30 UTC
svn commit: r520015 -
/incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
Author: rickhall
Date: Mon Mar 19 10:03:29 2007
New Revision: 520015
URL: http://svn.apache.org/viewvc?view=rev&rev=520015
Log:
Fixed some synchronization issues when accesses properties.
Modified:
incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
Modified: incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
URL: http://svn.apache.org/viewvc/incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java?view=diff&rev=520015&r1=520014&r2=520015
==============================================================================
--- incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java (original)
+++ incubator/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java Mon Mar 19 10:03:29 2007
@@ -41,7 +41,7 @@
// Service factory interface.
private ServiceFactory m_factory = null;
// Associated property dictionary.
- private Map m_propMap = null;
+ private Map m_propMap = new StringMap(false);
// Re-usable service reference.
private ServiceReferenceImpl m_ref = null;
@@ -153,7 +153,7 @@
protected String[] getPropertyKeys()
{
- synchronized (m_list)
+ synchronized (m_propMap)
{
m_list.clear();
Iterator i = m_propMap.entrySet().iterator();
@@ -230,29 +230,24 @@
private void initializeProperties(Dictionary dict)
{
- // Create a case insensitive map.
- if (m_propMap == null)
- {
- m_propMap = new StringMap(false);
- }
- else
+ synchronized (m_propMap)
{
m_propMap.clear();
- }
-
- if (dict != null)
- {
- Enumeration keys = dict.keys();
- while (keys.hasMoreElements())
+
+ if (dict != null)
{
- Object key = keys.nextElement();
- m_propMap.put(key, dict.get(key));
+ Enumeration keys = dict.keys();
+ while (keys.hasMoreElements())
+ {
+ Object key = keys.nextElement();
+ m_propMap.put(key, dict.get(key));
+ }
}
+
+ // Add the framework assigned properties.
+ m_propMap.put(Constants.OBJECTCLASS, m_classes);
+ m_propMap.put(Constants.SERVICE_ID, m_serviceId);
}
-
- // Add the framework assigned properties.
- m_propMap.put(Constants.OBJECTCLASS, m_classes);
- m_propMap.put(Constants.SERVICE_ID, m_serviceId);
}
private Object getFactoryUnchecked(Bundle bundle)