Author: fmeschbe
Date: Thu Mar  8 04:13:26 2012
New Revision: 1298267

URL: http://svn.apache.org/viewvc?rev=1298267&view=rev
Log:
FELIX-3345 Apply patch FELIX-3345-5.diff by David Jencks (thanks alot)

Modified:
    
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java

Modified: 
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java?rev=1298267&r1=1298266&r2=1298267&view=diff
==============================================================================
--- 
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
 (original)
+++ 
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
 Thu Mar  8 04:13:26 2012
@@ -816,17 +816,25 @@ public class DependencyManager implement
         Object service = m_bound.remove( serviceReference );
         if ( service != null && service != BOUND_SERVICE_SENTINEL )
         {
-            try
-            {
-                
m_componentManager.getActivator().getBundleContext().ungetService( 
serviceReference );
-            }
-            catch ( IllegalStateException e )
+            BundleComponentActivator activator = 
m_componentManager.getActivator();
+            if ( activator != null )
             {
-                m_componentManager.log( LogService.LOG_INFO,
-                    "For dependency {0}, trying to unget ServiceReference {1} 
on invalid bundle context {2}",
-                    new Object[]
-                        { m_dependencyMetadata.getName(), 
serviceReference.getProperty( Constants.SERVICE_ID ),
-                            serviceReference }, null );
+                BundleContext bundleContext = activator.getBundleContext();
+                if ( bundleContext != null )
+                {
+                    try
+                    {
+                        bundleContext.ungetService( serviceReference );
+                    }
+                    catch ( IllegalStateException e )
+                    {
+                        m_componentManager.log( LogService.LOG_INFO,
+                            "For dependency {0}, trying to unget 
ServiceReference {1} on invalid bundle context {2}",
+                            new Object[]
+                                { m_dependencyMetadata.getName(), 
serviceReference.getProperty( Constants.SERVICE_ID ),
+                                    serviceReference }, null );
+                    }
+                }
             }
         }
     }


Reply via email to