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

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

     [ https://issues.apache.org/jira/browse/SLING-6831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carsten Ziegeler resolved SLING-6831.
-------------------------------------
    Resolution: Fixed

> 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
>            Assignee: Carsten Ziegeler
>             Fix For: Installer Core 3.8.8
>
>         Attachments: SLING-6831.patch
>
>
> 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)