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() )
             {