[
https://issues.apache.org/jira/browse/FELIX-2822?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Richard S. Hall closed FELIX-2822.
----------------------------------
Resolution: Fixed
After thinking about it, I realize that the system bundle should be handled
differently than other bundles when the framework is stopped. Normal bundles
are unresolved and effectively discarded. The system bundle was being treated
the same way, but this was causing a problem since the framework instance can
be reused.
To avoid this situation, since Felix extends BundleImpl, I just overrode
BundleImpl.close() to do nothing. Thus, when the framework stops all bundles
except the system bundle are thrown away. This means that once the framework is
started, the system bundle continues to exist and stays in the RESOLVED state
forever, even after the framework stops.
This makes sense, because if you reuse the framework instance then the system
bundle doesn't need to be resolved again since it configuration cannot change
from one run to the next.
> [Framework] System bundle module's state not reset when framework restarted
> leading to NPE
> ------------------------------------------------------------------------------------------
>
> Key: FELIX-2822
> URL: https://issues.apache.org/jira/browse/FELIX-2822
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: framework-3.0.8
> Reporter: Richard S. Hall
> Assignee: Richard S. Hall
> Priority: Minor
> Fix For: framework-3.2.0
>
>
> Normally when a bundle is refreshed, we throw away its module and then
> recreate it, so we are always starting with a fresh module. For the system
> bundle, when we stop and restart the framework, the system bundle module is
> reused. When the framework is restarted, the system bundle module state is
> still resolved, so when we re-resolve it in Framework.init(), it doesn't get
> empty wires injected into it since the resolver thinks it's resolved. This
> leads to subsequent NPEs when the resolver tries to wire later modules to the
> system bundle.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira