FELIX-4070 remove ungetService state method

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1486751 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 e98ca54..9bb7341 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
@@ -1307,12 +1307,6 @@
             return m_state;
         }
 
-        void ungetService( ImmediateComponentManager dcm )
-        {
-            throw new IllegalStateException("ungetService" + this);
-        }
-
-
         void enable( AbstractComponentManager acm )
         {
             log( acm, "enable" );
@@ -1429,11 +1423,6 @@
             doDeactivate( acm, reason, disable );
         }
 
-        void ungetService( ImmediateComponentManager dcm )
-        {
-            //do nothing, deactivate will unget all the services.
-        }
-
         void dispose( AbstractComponentManager acm, int reason )
         {
             acm.log( LogService.LOG_DEBUG, "Disposing component (reason: {0})", new Object[] { REASONS[ reason ] }, null );
@@ -1562,11 +1551,6 @@
             acm.changeState( Disposed.getInstance() );
         }
 
-        void ungetService( ImmediateComponentManager dcm )
-        {
-            //do nothing.  This can arise if component is deactivated concurrently with ungetService on a delayed component.
-        }
-
     }
 
     protected static abstract class Satisfied extends State
@@ -1635,15 +1619,6 @@
             return m_inst;
         }
 
-
-        void ungetService( ImmediateComponentManager dcm )
-        {
-            dcm.deleteComponent( ComponentConstants.DEACTIVATION_REASON_UNSPECIFIED );
-            if ( dcm.enabled )
-            {
-                dcm.changeState( Registered.getInstance() );
-            }
-        }
     }
 
     /**
@@ -1668,10 +1643,6 @@
             return m_inst;
         }
 
-        void ungetService( ImmediateComponentManager dcm )
-        {
-            //do nothing.  This can arise if component is deactivated concurrently with ungetService on a delayed component.
-        }
     }
 
     /**
@@ -1722,12 +1693,6 @@
             return m_inst;
         }
 
-        void ungetService( ImmediateComponentManager dcm )
-        {
-            dcm.deleteComponent( ComponentConstants.DEACTIVATION_REASON_UNSPECIFIED );
-            dcm.changeState( Registered.getInstance() );
-        }
-
         void deactivate( AbstractComponentManager acm, int reason, boolean disable )
         {
             acm.disposeInternal( reason );
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
index edb4a77..d7ebc3e 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
@@ -837,7 +837,7 @@
                 {
                     if ( m_useCount.get() == 0 )
                     {
-                        Active.getInstance().ungetService( this );
+                        ungetService( );
                         unsetDependenciesCollected();
                     }
                 }
@@ -849,6 +849,15 @@
         }
     }
 
+    void ungetService( )
+    {
+        deleteComponent( ComponentConstants.DEACTIVATION_REASON_UNSPECIFIED );
+        if ( isEnabled() )
+        {
+            changeState( Registered.getInstance() );
+        }
+    }
+
     private boolean keepInstances()
     {
         return getActivator() != null && getActivator().getConfiguration().keepInstances();