felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Offenbach (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-4851) ConfigAdmin only forwards ConfigurationEvents to ConfigurationListeners which are provided by bundles that are in state ACTIVE
Date Fri, 17 Apr 2015 18:13:59 GMT

    [ https://issues.apache.org/jira/browse/FELIX-4851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14500343#comment-14500343

Jens Offenbach commented on FELIX-4851:

Thanks a lot. I have built the ConfigAdmin fresh from the Felix repository and everythings
works nice with 1.8.3-SNAPSHOT. Switching back to 1.8.2 and the issue occurs immediately.
I get under Windows 7 and Java 8 the same error stated above during test execution. I switched
to Java 7, but Pax reports two test failures:
Failed tests:
Test did not completed timely
Test failed: Detected errors logged during concurrent test
Harald from Pax Exam prepares a new release that will be fully compatbile with both OSGi R6
frameworks. Have a look here: https://ops4j1.jira.com/browse/PAXEXAM-701

> 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
>            Assignee: David Bosschaert
>            Priority: Critical
>             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
> 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. The problem does not occur in combination with the Equinox ConfigAdmin,
which does not make the problematic bundle state check.
> 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

View raw message