Author: pderop
Date: Mon May 24 20:02:37 2010
New Revision: 947775

URL: http://svn.apache.org/viewvc?rev=947775&view=rev
Log:
Don't throw a ConfigurationException when the updated callback method does not 
exist.
Indeed, throwing a ConfigurationException cause a serious problem when adding a 
ConfigurationDependency in
in an aspect (or adapter) service, because the aspect (or adapter) internal 
service does not implement the updated callback.
Note: we take the same behavior as with ServiceDependency, which also ignores 
NoSuchMethodException when the callback method
for injected dependencies is not found in the service impl.


Modified:
    
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java

Modified: 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java?rev=947775&r1=947774&r2=947775&view=diff
==============================================================================
--- 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
 (original)
+++ 
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
 Mon May 24 20:02:37 2010
@@ -227,6 +227,9 @@ public class ConfigurationDependencyImpl
                     throw new ConfigurationException(null, "Service " + ds + " 
with " + this.toString() + " could not be updated", e.getTargetException());
                 }
             }
+            catch (NoSuchMethodException e) {
+                // if the method does not exist, ignore it
+            }
             catch (Throwable t) {
                 // wrap any other exception as a ConfigurationException.
                 throw new ConfigurationException(null, "Service " + ds + " 
with " + this.toString() + " could not be updated", t);


Reply via email to