[
https://issues.apache.org/jira/browse/FELIX-4851?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jens Offenbach updated FELIX-4851:
----------------------------------
Summary: ConfigAdmin only forwards ConfigurationEvents to
ConfigurationListeners which are provided by bundles that are in state ACTIVE
(was: ConfigAdmin only forwards configuration events to ConfigurationListeners
which are provided by bundles that are in state ACTIVE)
> ConfigAdmin only forwards ConfigurationEvents to ConfigurationListeners which
> are provided by bundles that are in state ACTIVE
> ------------------------------------------------------------------------------------------------------------------------------
>
> Key: FELIX-4851
> URL: https://issues.apache.org/jira/browse/FELIX-4851
> Project: Felix
> Issue Type: Bug
> Components: Configuration Admin
> Affects Versions: configadmin-1.8.2
> Reporter: Jens Offenbach
> Fix For: configadmin-1.8.4
>
>
> I am facing a serious problem with the Felix ConfigAdmin in combination with
> Felix SCR. Let us assume that the SCR bundle becomes activated at last and
> activates a Component that creates a configuration which itself is a
> precondition for the instantiation of another component
> (ConfigurationPolicy#REQUIRE). In this case the Felix ConfigAdmin does not
> deliver the configuration update event to SCR, although SCR has registered a
> ConfigurationListener in the OSGi Service Registry.
> The problem is caused by line 2029 of the class ConfigurationManager
> (Version: 1.8.3-SNAPSHOT):
> {code}
> if ( listenerProvider[serviceIndex].getState() == Bundle.ACTIVE &&
> this.listeners[serviceIndex] != null )
> {code}
> In this scenario, the SCR bundle is in state STARTING and reaches the ACTIVE
> state directly after all available components have been activated. Because of
> missing Configuration Events caused by the Felix ConfigAdmin, SCR is not able
> to activate all those components whose preconditions are actually fulfilled.
> I highly recommend removing the bundle state check and change line 2029 into:
> {code}
> if ( this.listeners[serviceIndex] != null ).
> {code}
> It is up to the developer to decide, in which bundle state configuration
> events are considered to be important or not. In the SCR scenario, the
> developers rely on the fact that configuration events are delivered
> independently of their bundle state.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)