[
https://issues.apache.org/jira/browse/FELIX-4069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13663288#comment-13663288
]
Adam Purkiss commented on FELIX-4069:
-------------------------------------
The error does not seem to occur and things seem ok at the moment although we
will continue testing with this, I have not looked at the full change list from
1.6.2 to this so I am assuming all should be good else where. Is there a eta on
when this might make it to an official update? On a side not I had to skip the
unit tests on my dev box when doing the build as I got a build failure during
the tests . I have not looked into the test failure to see what is going on but
for your information my dev box was saying:
[org.apache.felix.scr.integration.components.concurrency.C] (exit)
log level: 4 D=13:20:10,796 T=Thread[Thread-4,5,main]: [org.apache.felix.scr.int
egration.components.concurrency.C(21310)] Unset and deconfigured implementation
object for component org.apache.felix.scr.integration.components.concurrency.C i
n deleteComponent for reason Component disabled
log level: 4 D=13:20:10,796 T=Thread[Thread-4,5,main]: [org.apache.felix.scr.int
egration.components.concurrency.C(21310)] Deactivating dependency managers
log level: 4 D=13:20:10,796 T=Thread[Thread-4,5,main]: [org.apache.felix.scr.int
egration.components.concurrency.C(21310)] Disabling dependency managers
Results :
Tests run: 17, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8:16.128s
[INFO] Finished at: Tue May 21 13:27:10 EDT 2013
[INFO] Final Memory: 12M/247M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.
12:integration-test (default) on project org.apache.felix.scr: Execution default
of goal org.apache.maven.plugins:maven-failsafe-plugin:2.12:integration-test fa
iled: The forked VM terminated without saying properly goodbye. VM crash or Syst
em.exit called ? -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutio
nException
> ConcurrentModificationException in ServiceFactoryComponentManager
> -----------------------------------------------------------------
>
> Key: FELIX-4069
> URL: https://issues.apache.org/jira/browse/FELIX-4069
> Project: Felix
> Issue Type: Bug
> Components: Declarative Services (SCR)
> Affects Versions: scr-1.6.2
> Environment: Windows 7
> Reporter: Adam Purkiss
> Assignee: David Jencks
> Fix For: scr-1.8.0
>
>
> During startup of our application that is heavily dependant on DS and felix
> we occasionally see the following error:
> ERROR: Bundle DwsCoreImpl.DwsCoreLogProviderImpl [37] EventDispatcher: Error
> during dispatch. (java.util.ConcurrentModificationException)
> java.util.ConcurrentModificationException
> at
> java.util.IdentityHashMap$IdentityHashMapIterator.nextIndex(IdentityHashMap.java:732)
> at
> java.util.IdentityHashMap$KeyIterator.next(IdentityHashMap.java:822)
> at
> org.apache.felix.scr.impl.manager.ServiceFactoryComponentManager.invokeBindMethod(ServiceFactoryComponentManager.java:204)
> at
> org.apache.felix.scr.impl.manager.DependencyManager.serviceAdded(DependencyManager.java:402)
> at
> org.apache.felix.scr.impl.manager.DependencyManager.serviceChanged(DependencyManager.java:159)
> at
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
> at
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
> at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4419)
> at org.apache.felix.framework.Felix.registerService(Felix.java:3423)
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:346)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:660)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:644)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.registerComponentService(AbstractComponentManager.java:688)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Unsatisfied.activate(AbstractComponentManager.java:1481)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:550)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:261)
> at
> org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:328)
> at
> org.apache.felix.scr.impl.BundleComponentActivator.initialize(BundleComponentActivator.java:158)
> at
> org.apache.felix.scr.impl.BundleComponentActivator.<init>(BundleComponentActivator.java:113)
> at
> org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:261)
> at
> org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:179)
> at
> org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:868)
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:789)
> at
> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:514)
> at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4403)
> at org.apache.felix.framework.Felix.startBundle(Felix.java:2092)
> at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1291)
> at
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)
> at java.lang.Thread.run(Thread.java:722)
> FrameworkEvent ERROR
> java.util.ConcurrentModificationException
> at
> java.util.IdentityHashMap$IdentityHashMapIterator.nextIndex(IdentityHashMap.java:732)
> at
> java.util.IdentityHashMap$KeyIterator.next(IdentityHashMap.java:822)
> at
> org.apache.felix.scr.impl.manager.ServiceFactoryComponentManager.invokeBindMethod(ServiceFactoryComponentManager.java:204)
> at
> org.apache.felix.scr.impl.manager.DependencyManager.serviceAdded(DependencyManager.java:402)
> at
> org.apache.felix.scr.impl.manager.DependencyManager.serviceChanged(DependencyManager.java:159)
> at
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
> at
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
> at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4419)
> at org.apache.felix.framework.Felix.registerService(Felix.java:3423)
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:346)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:660)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:644)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.registerComponentService(AbstractComponentManager.java:688)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Unsatisfied.activate(AbstractComponentManager.java:1481)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:550)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:261)
> at
> org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:328)
> at
> org.apache.felix.scr.impl.BundleComponentActivator.initialize(BundleComponentActivator.java:158)
> at
> org.apache.felix.scr.impl.BundleComponentActivator.<init>(BundleComponentActivator.java:113)
> at
> org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:261)
> at
> org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:179)
> at
> org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:868)
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:789)
> at
> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:514)
> at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4403)
> at org.apache.felix.framework.Felix.startBundle(Felix.java:2092)
> at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1291)
> at
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)
> at java.lang.Thread.run(Thread.java:722)
> Looking at the ServiceFactoryComponentManager we see there is no protection
> around the iteration over components which makes it no surprise that the code
> is not thread safe and is suffering from concurrent modification. Although
> most of our system seems to be working this exception at startup is cause for
> wider concern on how thread safe the code is and if later on when we have
> even more services we will start seeing bigger issues that mean ditching scr
> and using some other solution.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira