You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "David Bosschaert (JIRA)" <ji...@apache.org> on 2017/05/04 12:50:04 UTC

[jira] [Created] (SLING-6831) ConcurrentModificationException in OSGi Installer

David Bosschaert created SLING-6831:
---------------------------------------

             Summary: ConcurrentModificationException in OSGi Installer
                 Key: SLING-6831
                 URL: https://issues.apache.org/jira/browse/SLING-6831
             Project: Sling
          Issue Type: Bug
          Components: Installer
    Affects Versions: Installer Core 3.8.6
            Reporter: David Bosschaert
             Fix For: Installer Core 3.8.8


Under certain scenarios I'm getting: 
{code}java.util.ConcurrentModificationException: null
	at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)
	at java.util.HashMap$KeyIterator.next(HashMap.java:1461)
	at org.apache.sling.installer.core.impl.OsgiInstallerImpl.getInstallationState(OsgiInstallerImpl.java:1390)
...{code}
To me this seems caused by the fact that the Map datastructure in the PersistentResourceList is non-concurrent.

PersistentResourceList.getEntityIds() returns the map's values directly. This is what is used in OsgiInstallerImpl line 1390:
{code}
    public Collection<String> getEntityIds() {
        return this.data.keySet();
    }{code}
And the client code iterates over that, causing the exception.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)