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/08 10:08:04 UTC
[jira] [Closed] (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 closed SLING-6831.
-----------------------------------
> 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)