You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2011/11/16 09:52:04 UTC

svn commit: r1202591 - /felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java

Author: fmeschbe
Date: Wed Nov 16 08:52:04 2011
New Revision: 1202591

URL: http://svn.apache.org/viewvc?rev=1202591&view=rev
Log:
FELIX-3227 Comply with Config Admin 1.4 to call ManagedService.update with null if configuration is not visible

Modified:
    felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java

Modified: felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java?rev=1202591&r1=1202590&r2=1202591&view=diff
==============================================================================
--- felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java (original)
+++ felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java Wed Nov 16 08:52:04 2011
@@ -1372,21 +1372,29 @@ public class ConfigurationManager implem
                     return;
                 }
 
-                // CM 1.4 / 104.13.2.2
-                if ( !canReceive( serviceBundle, config.getBundleLocation() ) )
+                if ( canReceive( serviceBundle, config.getBundleLocation() ) )
                 {
-                    log( LogService.LOG_ERROR,
-                        "Cannot use configuration {0} for {1}: No visibility to configuration bound to {2}",
+                    // 104.4.2 Dynamic Binding
+                    config.tryBindLocation( serviceBundle.getLocation() );
+
+                    // prepare the configuration for the service (call plugins)
+                    callPlugins( properties, pid, sr, config );
+                }
+                else
+                {
+                    // CM 1.4 / 104.13.2.2 / 104.5.3
+                    // act as if there is no configuration
+                    log(
+                        LogService.LOG_DEBUG,
+                        "Cannot use configuration {0} for {1}: No visibility to configuration bound to {2}; calling with null",
                         new Object[]
                             { pid, ConfigurationManager.toString( sr ), config.getBundleLocation() } );
-                    return;
-                }
 
-                // 104.4.2 Dynamic Binding
-                config.tryBindLocation( serviceBundle.getLocation() );
+                    // CM 1.4 / 104.5.3 ManagedService.updated must be
+                    // called with null if configuration is no visible
+                    properties = null;
+                }
 
-                // prepare the configuration for the service (call plugins)
-                callPlugins( properties, pid, sr, config );
             }
             else
             {