[jira] [Created] (SLING-4077) ConcurrentModificationException in o.a.sling.installer.core.impl.OsgiInstallerImpl

2014-10-20 Thread Rupert Westenthaler (JIRA)
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

2014-10-20 Thread Rupert Westenthaler (JIRA)

[ 
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

2013-02-12 Thread Rupert Westenthaler (JIRA)

[ 
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

2013-02-12 Thread Rupert Westenthaler (JIRA)

[ 
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

2013-02-01 Thread Rupert Westenthaler (JIRA)
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

2013-02-01 Thread Rupert Westenthaler (JIRA)

 [ 
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