[ 
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:
{code}
Failed tests:
testCMUpdateStress:org.apache.felix.cm.integration.ConfigurationAdminUpdateStressTest.testCMUpdateStress:NativeContainer:org.apache.felix.framework.FrameworkFactory@714fef9f(org.apache.felix.cm.integration.ConfigurationAdminUpdateStressTest):
 Test did not completed timely
test_ConcurrentManagedServicesWithConcurrentConfigurations:org.apache.felix.cm.integration.FELIX4385_StressTest.test_ConcurrentManagedServicesWithConcurrentConfigurations:NativeContainer:org.apache.felix.framework.FrameworkFactory@67adc23a(org.apache.felix.cm.integration.FELIX4385_StressTest):
 Test failed: Detected errors logged during concurrent test
{code}
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 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. 
> 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
(v6.3.4#6332)

Reply via email to