Carsten Ziegeler created SLING-3474:
---------------------------------------
Summary: Concurrent modification exception in installer
Key: SLING-3474
URL: https://issues.apache.org/jira/browse/SLING-3474
Project: Sling
Issue Type: Bug
Components: Installer
Affects Versions: Installer Core 3.5.0
Reporter: Carsten Ziegeler
Assignee: Carsten Ziegeler
Fix For: Installer Core 3.5.2
The following exception might occur:
12.03.2014 23:21:49.899 *WARN* [CM Event Dispatcher (Fire ConfigurationEvent:
pid=org.apache.sling.engine.impl.auth.SlingAuthenticator)]
org.apache.sling.installer.core.impl.PersistentResourceList Unable to save
persistent list: null
java.util.ConcurrentModificationException: null
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:926)
at java.util.HashMap$EntryIterator.next(HashMap.java:966)
at java.util.HashMap$EntryIterator.next(HashMap.java:964)
at java.util.HashMap.writeObject(HashMap.java:1131)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at
org.apache.sling.installer.core.impl.PersistentResourceList.save(PersistentResourceList.java:166)
at
org.apache.sling.installer.core.impl.OsgiInstallerImpl.resourceAddedOrUpdated(OsgiInstallerImpl.java:965)
at
org.apache.sling.installer.factories.configuration.impl.ConfigTaskCreator.configurationEvent(ConfigTaskCreator.java:138)
at
org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.sendEvent(ConfigurationManager.java:2032)
at
org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.run(ConfigurationManager.java:2002)
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)
at java.lang.Thread.run(Thread.java:744)
While the installer works under the assumption that only the main thread can
modify the installer state, the writeback mechanism can actually also change
and persists state (as seen above). Therefore the code needs to be guarded
against concurrent access.
--
This message was sent by Atlassian JIRA
(v6.2#6252)