felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-314) EventDispatcher class not reusable in same class loader for multiple Felix instances
Date Thu, 28 Jun 2007 13:57:25 GMT

    [ https://issues.apache.org/jira/browse/FELIX-314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12508831
] 

Richard S. Hall commented on FELIX-314:
---------------------------------------

I introduced that bug by apparently not thinking enough about what I was trying to do.

The reason for all of the statics was not accidental, the goal was to essentially require
only one EventDispatcher (and thus one dispatcher thread) for all Felix instances inside of
a given JVM (loaded by a specific class loader). The goal here was to reduce overhead.

I guess the debate here is whether or not it is worth it, but I would prefer such attempts
to minimize thread usage. In truth, we probably should look at other places where threads
are created to see if similar thread sharing can be achieved.


> EventDispatcher class not reusable in same class loader for multiple Felix instances
> ------------------------------------------------------------------------------------
>
>                 Key: FELIX-314
>                 URL: https://issues.apache.org/jira/browse/FELIX-314
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: 0.8.0
>            Reporter: Felix Meschberger
>             Fix For: 1.0.0
>
>         Attachments: FELIX-314.diff
>
>
> Consider this use case:
>    Felix felix = new Felix();
>    felix.start(props, null);
>    felix.shutdown();
>    felix = new Felix();
>    felix.start(props, null);
>    felix.shutdown();
> The first Felix instance will stop the EventDispatcher by calling the static EventDispatcher.shutdown()
method thus stopping the event dispatcher thread and setting the static variables stopping
and stopped to true. The reference to the event dispatcher thread in the static variable m_thread
is not cleared on shutdown.
> The second Felix instance will create an EventDispatcher instance but the static fields
are not reset. That is the event dispatcher is assumed to be stopped and the event dispatcher
thread will not be newly created and started.
> I will suggest a patch for this issue.

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


Mime
View raw message