FELIX-1846 Guard access to the existing target filter being null

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@833085 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
index 1533833..9425478 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
@@ -390,7 +390,6 @@
                 ungetService( reference );
             }
         }
-
         else
         {
             m_componentManager.log( LogService.LOG_DEBUG,
@@ -1064,8 +1063,10 @@
     boolean canUpdateDynamically( Dictionary properties )
     {
         // 1. no target filter change
-        final String targetFilter = ( String ) properties.get( m_dependencyMetadata.getTargetPropertyName() );
-        if ( ( getTarget() == null && targetFilter == null ) || getTarget().equals( targetFilter ) )
+        final String newTarget = ( String ) properties.get( m_dependencyMetadata.getTargetPropertyName() );
+        final String currentTarget = getTarget();
+        if ( ( currentTarget == null && newTarget == null )
+            || ( currentTarget != null && currentTarget.equals( newTarget ) ) )
         {
             // can update if target filter is not changed, since there is
             // no change is service binding
@@ -1085,7 +1086,7 @@
         // invariant: target filter change + dynamic policy
 
         // 3. check target services matching the new filter
-        ServiceReference[] refs = getFrameworkServiceReferences( targetFilter );
+        ServiceReference[] refs = getFrameworkServiceReferences( newTarget );
         if ( refs != null && refs.length > 0 )
         {
             // can update since there is at least on service matching the