FELIX-3718 deactivate should move any satisfied state to unsatisfied when done

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1399525 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 7329463..b82d9c4 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
@@ -1418,6 +1418,11 @@
             // reset the component id now (a disabled component has none)
             acm.unregisterComponentId();
         }
+
+        public boolean isSatisfied()
+        {
+            return false;
+        }
     }
 
     protected static final class Disabled extends State
@@ -1681,7 +1686,7 @@
             // component to remain in the deactivating state !
             doDeactivate(acm, reason);
 
-            if ( acm.state() == this )
+            if ( acm.state().isSatisfied() )
             {
                 acm.changeState( Unsatisfied.getInstance() );
             }
@@ -1702,6 +1707,11 @@
             acm.changeState( Disposed.getInstance() );
         }
 
+        @Override
+        public boolean isSatisfied()
+        {
+            return true;
+        }
     }
 
     /**