[
https://issues.apache.org/jira/browse/FELIX-4210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13767394#comment-13767394
]
Christoph Läubrich commented on FELIX-4210:
-------------------------------------------
Hi [~djencks] it will mostly happen due to package refreshs, I assume your are
using some kind of service tracker to track down required or optional dynamic
references and there you are out of the syncronization of the BundleListener.
If this is al happenning fast (e.g. startup of the framework) the error occurs
in 1 of 3 cases, sometimes I never see this for longer periods, seem to depend
on the system load. The problem is, that this seem to mess up something
internally in SCR so I sometimes need to stop/start the bundle with the service
to make it work again.
[~fmeschbe] when will the next release be out? I'm currently using 1.6
> Error "BundleContext is no longer valid" while activating component
> -------------------------------------------------------------------
>
> Key: FELIX-4210
> URL: https://issues.apache.org/jira/browse/FELIX-4210
> Project: Felix
> Issue Type: Bug
> Components: Declarative Services (SCR)
> Affects Versions: scr-1.6.0
> Reporter: Christoph Läubrich
> Assignee: David Jencks
> Priority: Minor
>
> From time to time the following Exception is thrown in the logs saiing that a
> component can't be activated:
> !STACK 0
> java.lang.IllegalStateException: BundleContext is no longer valid
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.checkValid(BundleContextImpl.java:931)
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.createFilter(BundleContextImpl.java:917)
> at
> org.apache.felix.scr.impl.manager.DependencyManager.setTargetFilter(DependencyManager.java:1265)
> at
> org.apache.felix.scr.impl.manager.DependencyManager.<init>(DependencyManager.java:106)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.loadDependencyManagers(AbstractComponentManager.java:586)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.<init>(AbstractComponentManager.java:86)
> at
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.<init>(ImmediateComponentManager.java:86)
> at
> org.apache.felix.scr.impl.config.AbstractComponentHolder.createComponentManager(AbstractComponentHolder.java:54)
> at
> org.apache.felix.scr.impl.config.ConfiguredComponentHolder.<init>(ConfiguredComponentHolder.java:99)
> at
> org.apache.felix.scr.impl.config.ConfigurationComponentRegistry.createComponentHolder(ConfigurationComponentRegistry.java:115)
> at
> org.apache.felix.scr.impl.BundleComponentActivator.loadDescriptor(BundleComponentActivator.java:244)
> at
> org.apache.felix.scr.impl.BundleComponentActivator.initialize(BundleComponentActivator.java:147)
> at
> org.apache.felix.scr.impl.BundleComponentActivator.<init>(BundleComponentActivator.java:111)
> at
> org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:285)
> at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:203)
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847)
> at
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
> at
> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
> at
> org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1523)
> at
> org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1459)
> at
> org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1454)
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:391)
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:389)
> at
> org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1131)
> at
> org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
> at
> org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
> at
> org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
> at
> org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
> at
> org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
> at
> org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
> at
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
> at
> org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
> The problem seems, that SCR tries to create Filter for a component, but was
> deactivated/refreshed in the process of doing so.
> The API
> (http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#createFilter%28java.lang.String%29)
> says:
> java.lang.IllegalStateException - If this BundleContext is no longer valid.
> so it seems valid for me that SCR catch and silently ignore this instead of
> reporting this as an error of the component beeing activated.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira