Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Installer Core 3.8.6
-
None
Description
Under certain scenarios I'm getting:
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)
...
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:
public Collection<String> getEntityIds() { return this.data.keySet(); }
And the client code iterates over that, causing the exception.