FELIX-3089 Assume a optional dependency satisfied even if the component has no permission to get the service (according to 112.9.1)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1162659 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
index ca48882..a2eb6c2 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
@@ -618,9 +618,20 @@
if ( !dm.hasGetPermission() )
{
// bundle has no service get permission
- log( LogService.LOG_DEBUG, "No permission to get dependency: {0}", new Object[]
- { dm.getName() }, null );
- satisfied = false;
+ if ( dm.isOptional() )
+ {
+ log( LogService.LOG_DEBUG, "No permission to get optional dependency: {0}; assuming satisfied",
+ new Object[]
+ { dm.getName() }, null );
+ satisfied = true;
+ }
+ else
+ {
+ log( LogService.LOG_DEBUG, "No permission to get mandatory dependency: {0}; assuming unsatisfied",
+ new Object[]
+ { dm.getName() }, null );
+ satisfied = false;
+ }
}
else if ( !dm.isSatisfied() )
{