[ 
https://issues.apache.org/jira/browse/FELIX-869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Felix Meschberger updated FELIX-869:
------------------------------------

          Component/s:     (was: Declarative Services (SCR))
                       Framework
    Affects Version/s:     (was: scr-1.0.6)
                       felix-1.4.0
                       felix-1.4.1
        Fix Version/s: felix-1.6.0

Reassign this issue to the framework component and mark it as happening with 
1.4.0 and 1.4.1. Earlier versions are not succeptible to this issue, since 
these did not throw the IllegalStateException.

> SCR throws exception on invalidating a component with a reference to a 
> service that was already unregistered
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-869
>                 URL: https://issues.apache.org/jira/browse/FELIX-869
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.4.0, felix-1.4.1
>         Environment: Felix 1.4.1, SCR 1.0.6
>            Reporter: Heiko Seeberger
>             Fix For: felix-1.6.0
>
>
> Simple scenario: A component references (statically, 1:1, look-up strategy) a 
> service. When the bundle providing that service is stopped and hence the 
> reference no longer satisfied, stopping the bundle providing the component 
> will result in the below exception.
> I checked with Equinox 3.4.1 and there everything is working fine.
> ERROR: net.eclipsetraining.backoffice.tplan.app.swing (9): 
> [net.eclipsetraining.backoffice.tplan.ui.swing.internal.Component] 
> BundleComponentActivator : Exception invalidating
> java.lang.IllegalStateException: The service registration is no longer valid.
>       at 
> org.apache.felix.framework.ServiceRegistrationImpl.getReference(ServiceRegistrationImpl.java:88)
>       at 
> org.apache.felix.framework.ServiceReferenceImpl.hashCode(ServiceReferenceImpl.java:87)
>       at java.util.HashMap.removeEntryForKey(HashMap.java:548)
>       at java.util.HashMap.remove(HashMap.java:538)
>       at java.util.Collections$SynchronizedMap.remove(Collections.java:1982)
>       at 
> org.apache.felix.scr.impl.DependencyManager.ungetService(DependencyManager.java:578)
>       at 
> org.apache.felix.scr.impl.DependencyManager.close(DependencyManager.java:374)
>       at 
> org.apache.felix.scr.impl.AbstractComponentManager.disableInternal(AbstractComponentManager.java:589)
>       at 
> org.apache.felix.scr.impl.AbstractComponentManager.disposeInternal(AbstractComponentManager.java:616)
>       at 
> org.apache.felix.scr.impl.AbstractComponentManager.dispose(AbstractComponentManager.java:272)
>       at 
> org.apache.felix.scr.impl.ImmediateComponentManager.dispose(ImmediateComponentManager.java:120)
>       at 
> org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:258)
>       at 
> org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:264)
>       at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:177)
>       at 
> org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:745)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:674)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:587)
>       at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3629)
>       at org.apache.felix.framework.Felix._stopBundle(Felix.java:2076)
>       at org.apache.felix.framework.Felix.stopBundle(Felix.java:2034)
>       at org.apache.felix.framework.BundleImpl.stop(BundleImpl.java:418)
>       at org.apache.felix.framework.BundleImpl.stop(BundleImpl.java:405)
>       at 
> org.apache.felix.shell.impl.StopCommandImpl.execute(StopCommandImpl.java:70)
>       at 
> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:276)
>       at 
> org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:167)
>       at java.lang.Thread.run(Thread.java:637)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to