Author: clement
Date: Tue Apr  5 19:59:53 2011
New Revision: 1089186

URL: http://svn.apache.org/viewvc?rev=1089186&view=rev
Log:
Fixed FELIX-2902
Before adding a service property by propagation, checks whether the property is 
not already existing.

Modified:
    
felix/trunk/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java

Modified: 
felix/trunk/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java?rev=1089186&r1=1089185&r2=1089186&view=diff
==============================================================================
--- 
felix/trunk/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
 (original)
+++ 
felix/trunk/ipojo/core/src/main/java/org/apache/felix/ipojo/handlers/providedservice/ProvidedService.java
 Tue Apr  5 19:59:53 2011
@@ -485,12 +485,21 @@ public class ProvidedService implements 
         while (keys.hasMoreElements()) {
             String key = (String) keys.nextElement();
             Object value = props.get(key);
-            Property prop;
-            try {
-                prop = new Property(key, null, null, value.toString(), 
value.getClass().getName(), getInstanceManager(), m_handler);
-                addProperty(prop);
-            } catch (ConfigurationException e) {
-                m_handler.error("The propagated property " + key + " cannot be 
created correctly : " + e.getMessage());
+
+            boolean alreadyExisting = false;
+            for (int i = 0; i < m_properties.length; i++) {
+                if (key.equals(m_properties[i].getName())) {
+                    alreadyExisting = true;
+                }
+            }
+
+            if (! alreadyExisting) {
+                try {
+                    Property prop = new Property(key, null, null, 
value.toString(), value.getClass().getName(), getInstanceManager(), m_handler);
+                    addProperty(prop);
+                } catch (ConfigurationException e) {
+                    m_handler.error("The propagated property " + key + " 
cannot be created correctly : " + e.getMessage());
+                }
             }
         }
     }


Reply via email to