[jira] [Created] (SLING-4077) ConcurrentModificationException in o.a.sling.installer.core.impl.OsgiInstallerImpl
Rupert Westenthaler created SLING-4077: -- Summary: ConcurrentModificationException in o.a.sling.installer.core.impl.OsgiInstallerImpl Key: SLING-4077 URL: https://issues.apache.org/jira/browse/SLING-4077 Project: Sling Issue Type: Bug Components: Installer Affects Versions: Installer Core 3.5.4, Installer Core 3.5.0 Environment: Apache Sling Launcher as used by Apache Stanbol trunk versin using Installer Core 3.5.0. Reporter: Rupert Westenthaler When starting the Apache Stanbol Launchers I do see sometimes CME such as. {code} 16.10.2014 13:58:41.832 *ERROR* [OsgiInstallerImpl] org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception in Thread Thread[OsgiInstallerImpl,5,main] java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:894) at java.util.HashMap$KeyIterator.next(HashMap.java:928) at org.apache.sling.installer.core.impl.OsgiInstallerImpl.computeTasks(OsgiInstallerImpl.java:586) at org.apache.sling.installer.core.impl.OsgiInstallerImpl.run(OsgiInstallerImpl.java:242) at java.lang.Thread.run(Thread.java:724) {code} Looks like as if iterations over the PersistentResourceList need to get synchronized. The above exception is reported against version 3.5.0 however as the affected code as not changed in 3.5.4 I expect this version to also be affected by this. Because of that I also added this version to the list of affected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (SLING-4077) ConcurrentModificationException in o.a.sling.installer.core.impl.OsgiInstallerImpl
[ https://issues.apache.org/jira/browse/SLING-4077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14176899#comment-14176899 ] Rupert Westenthaler commented on SLING-4077: I updated the version in Stanbol with http://svn.apache.org/r1633151 (trunk) and http://svn.apache.org/r1633152 (0.12.1-SNAPSHOT). The local runs of the integration tests went fine for both versions. However this happens only very rarely so it is really hard to tell if the issue is really gone. Based on the code the OsgiInstallerImpl#computeTasks(..) iterates over the keys of the PersistentResourceList#data map. As the OsgiInstallerImpl#run(..) does not have any lock while calling OsgiInstallerImpl#computeTasks(..) I assume that even with the most current release there is still the possibility of an concurrent modification. ConcurrentModificationException in o.a.sling.installer.core.impl.OsgiInstallerImpl -- Key: SLING-4077 URL: https://issues.apache.org/jira/browse/SLING-4077 Project: Sling Issue Type: Bug Components: Installer Affects Versions: Installer Core 3.5.0, Installer Core 3.5.4 Environment: Apache Sling Launcher as used by Apache Stanbol trunk versin using Installer Core 3.5.0. Reporter: Rupert Westenthaler When starting the Apache Stanbol Launchers I do see sometimes CME such as. {code} 16.10.2014 13:58:41.832 *ERROR* [OsgiInstallerImpl] org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception in Thread Thread[OsgiInstallerImpl,5,main] java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:894) at java.util.HashMap$KeyIterator.next(HashMap.java:928) at org.apache.sling.installer.core.impl.OsgiInstallerImpl.computeTasks(OsgiInstallerImpl.java:586) at org.apache.sling.installer.core.impl.OsgiInstallerImpl.run(OsgiInstallerImpl.java:242) at java.lang.Thread.run(Thread.java:724) {code} Looks like as if iterations over the PersistentResourceList need to get synchronized. The above exception is reported against version 3.5.0 however as the affected code as not changed in 3.5.4 I expect this version to also be affected by this. Because of that I also added this version to the list of affected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (SLING-2722) Add support for transitive partialbundlelist dependencies with the maven-launchpad-plugin
[ https://issues.apache.org/jira/browse/SLING-2722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13576458#comment-13576458 ] Rupert Westenthaler commented on SLING-2722: The problem with including base dependencies in the components bundlelist is that you duplicate a lot of information (such as dependencies of base components and most important version numbers). This duplications do make it very hard to keep bundlelists consistent. Especially if you have a lot of them. Assuming that you have several components depending on the same base dependency (such as an JSON paraser) than you will need to modify several components bundle lists to accomplish that while with transitive dependencies you could still accomplish such a change with a change in a single list. In the meantime I committed a first version of Apache Stanbol bundlelists and launchers build on top of transitive dependencies. So if you want to have a look of the intended usage of this feature you can have a look at https://svn.apache.org/repos/asf/stanbol/branches/new_bundlelists/ and at this mail [1] on the Stanbol Dev mailing list [1] http://markmail.org/message/aeewj6mgrtmd7kwh Add support for transitive partialbundlelist dependencies with the maven-launchpad-plugin - Key: SLING-2722 URL: https://issues.apache.org/jira/browse/SLING-2722 Project: Sling Issue Type: Improvement Components: Maven Plugins and Archetypes Reporter: Rupert Westenthaler Attachments: SLING-2722_maven-launchpad-plugin_transitive_partialbundlelist_dependencies.patch While the maven-launchpad-plugin does support the inclusion of partialbundlelist by adding dependencies with the typepartialbundlelist/type to the pom.xml file. It does only consider direct dependencies and not transitive one. Transitive dependencies would allow to create partial bundle list that add to (depend on) others. This allows to make bundle lists self consistent without repeating bundles (e.g. common libraries) over and over again. It would also allow to define bundle lists for different 'levels': low level lists for managing modules requires by services that are than merged to an higher level bundle list that covers a user level feature. To give a simplified Example: In Apache Stanbol I would like to use this feature to create bundlelists like * Apache OpenNLP * Stanbol Enhancer component * OpenNLP based NLP processing Enhancement Engines * depends on OpenNLP * depends on Stanbol Enahncer -- 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
[jira] [Commented] (SLING-2722) Add support for transitive partialbundlelist dependencies with the maven-launchpad-plugin
[ https://issues.apache.org/jira/browse/SLING-2722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13576487#comment-13576487 ] Rupert Westenthaler commented on SLING-2722: base - bundle A 1.0, bundle B 1.1 components - base and bundle X 1.0 all - components Yes. This is exactly what I did. The new bundle list in the trunk define a lot of dependencies to other bundle lists to avoid the described duplications. This would basically work like processing transitive dependencies - with the difference that we don't as we aggregate the lists. Yes creating an aggregated bundle list would a an alternative to supporting transitive dependencies. Add support for transitive partialbundlelist dependencies with the maven-launchpad-plugin - Key: SLING-2722 URL: https://issues.apache.org/jira/browse/SLING-2722 Project: Sling Issue Type: Improvement Components: Maven Plugins and Archetypes Reporter: Rupert Westenthaler Attachments: SLING-2722_maven-launchpad-plugin_transitive_partialbundlelist_dependencies.patch While the maven-launchpad-plugin does support the inclusion of partialbundlelist by adding dependencies with the typepartialbundlelist/type to the pom.xml file. It does only consider direct dependencies and not transitive one. Transitive dependencies would allow to create partial bundle list that add to (depend on) others. This allows to make bundle lists self consistent without repeating bundles (e.g. common libraries) over and over again. It would also allow to define bundle lists for different 'levels': low level lists for managing modules requires by services that are than merged to an higher level bundle list that covers a user level feature. To give a simplified Example: In Apache Stanbol I would like to use this feature to create bundlelists like * Apache OpenNLP * Stanbol Enhancer component * OpenNLP based NLP processing Enhancement Engines * depends on OpenNLP * depends on Stanbol Enahncer -- 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
[jira] [Created] (SLING-2722) Add support for transitive partialbundlelist dependencies with the maven-launchpad-plugin
Rupert Westenthaler created SLING-2722: -- Summary: Add support for transitive partialbundlelist dependencies with the maven-launchpad-plugin Key: SLING-2722 URL: https://issues.apache.org/jira/browse/SLING-2722 Project: Sling Issue Type: Improvement Components: Maven Plugins and Archetypes Reporter: Rupert Westenthaler While the maven-launchpad-plugin does support the inclusion of partialbundlelist by adding dependencies with the typepartialbundlelist/type to the pom.xml file. It does only consider direct dependencies and not transitive one. Transitive dependencies would allow to create partial bundle list that add to (depend on) others. This allows to make bundle lists self consistent without repeating bundles (e.g. common libraries) over and over again. It would also allow to define bundle lists for different 'levels': low level lists for managing modules requires by services that are than merged to an higher level bundle list that covers a user level feature. To give a simplified Example: In Apache Stanbol I would like to use this feature to create bundlelists like * Apache OpenNLP * Stanbol Enhancer component * OpenNLP based NLP processing Enhancement Engines * depends on OpenNLP * depends on Stanbol Enahncer -- 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
[jira] [Updated] (SLING-2722) Add support for transitive partialbundlelist dependencies with the maven-launchpad-plugin
[ https://issues.apache.org/jira/browse/SLING-2722?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rupert Westenthaler updated SLING-2722: --- Attachment: SLING-2722_maven-launchpad-plugin_transitive_partialbundlelist_dependencies.patch Attached a patch that changes the AbstractUsingBundleListMojo to use the MavenProject#getArtifacts() instead of MavenProject#project.getDependencyArtifacts to search for dependencies with the type partialbundlelist. This had the desired effect for me, but I am not sure if this might introduce undesired side effects Add support for transitive partialbundlelist dependencies with the maven-launchpad-plugin - Key: SLING-2722 URL: https://issues.apache.org/jira/browse/SLING-2722 Project: Sling Issue Type: Improvement Components: Maven Plugins and Archetypes Reporter: Rupert Westenthaler Attachments: SLING-2722_maven-launchpad-plugin_transitive_partialbundlelist_dependencies.patch While the maven-launchpad-plugin does support the inclusion of partialbundlelist by adding dependencies with the typepartialbundlelist/type to the pom.xml file. It does only consider direct dependencies and not transitive one. Transitive dependencies would allow to create partial bundle list that add to (depend on) others. This allows to make bundle lists self consistent without repeating bundles (e.g. common libraries) over and over again. It would also allow to define bundle lists for different 'levels': low level lists for managing modules requires by services that are than merged to an higher level bundle list that covers a user level feature. To give a simplified Example: In Apache Stanbol I would like to use this feature to create bundlelists like * Apache OpenNLP * Stanbol Enhancer component * OpenNLP based NLP processing Enhancement Engines * depends on OpenNLP * depends on Stanbol Enahncer -- 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