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 );
+ }
+ }
}
}
}