You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Felix Meschberger (JIRA)" <ji...@apache.org> on 2010/02/17 14:45:27 UTC

[jira] Work started: (FELIX-2089) IllegalStateException thrown by LogWrapper if logging after bundle stop

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

Work on FELIX-2089 started by Felix Meschberger.

> IllegalStateException thrown by LogWrapper if logging after bundle stop
> -----------------------------------------------------------------------
>
>                 Key: FELIX-2089
>                 URL: https://issues.apache.org/jira/browse/FELIX-2089
>             Project: Felix
>          Issue Type: Bug
>          Components: Event Admin
>    Affects Versions: eventadmin-1.2.2
>            Reporter: Felix Meschberger
>            Assignee: Felix Meschberger
>             Fix For: eventadmin-1.2.2
>
>
> Some Event delivery worker threads may still be running when the Event Admin bundle is stopped. If such threads try to log through the LogWrapper after that fact, an IllegalStateException may be thrown as follows:
> 12.02.2010 18:38:20.279 *ERROR* [Thread-22] org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception in Thread Thread[Thread-22,5,main] java.lang.IllegalStateException: Invalid BundleContext.
> 	at org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:393)
> 	at org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:316)
> 	at org.apache.felix.eventadmin.impl.util.LogWrapper.log(LogWrapper.java:208)
> 	at org.apache.felix.eventadmin.impl.handler.BlacklistingHandlerTasks.blackList(BlacklistingHandlerTasks.java:172)
> 	at org.apache.felix.eventadmin.impl.tasks.HandlerTaskImpl.blackListHandler(HandlerTaskImpl.java:107)
> 	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:269)
> 	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:110)
> 	at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
> 	at java.lang.Thread.run(Unknown Source)
> (Note that the logger name ...Activator is just the logger of an UncaughtExceptionHandler registered with the Thread class).
> The reason for this is, that the BundleActivator.stop() method does not inform the LogWrapper class, that the BundleContext will be invalidated.
> A simple fix is to call the LogWrapper.setBundleContext method with a null argument to allow the LogWrapper to unregister as a LogService listener and drop all log service references to continue logging to stdout, if something would still be coming along.

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