[
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)