[ https://issues.apache.org/jira/browse/CONFIGURATION-278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12500622 ]
Emmanuel Bourg commented on CONFIGURATION-278: ---------------------------------------------- The configuration is not manually synchronized. Even if Commons Configuration is not fully thread safe I think we can at least the most frequent failure points in a multi threaded environment. The result could be unpredictable, but the code shouldn't crash with an exception. That makes me think that we could provide a SynchronizedConfiguration decorator that may help people synchronizing their configurations. > ConcurrentModificationException in PropertiesConfigurationLayout > ---------------------------------------------------------------- > > Key: CONFIGURATION-278 > URL: https://issues.apache.org/jira/browse/CONFIGURATION-278 > Project: Commons Configuration > Issue Type: Bug > Affects Versions: 1.4 > Reporter: Emmanuel Bourg > Fix For: 1.5 > > > PropertiesConfigurationLayout is not thread safe, if a configuration event is > received when the configuration is being saved, a > ConcurrentModificationException is thrown : > java.util.ConcurrentModificationException > at > org.apache.commons.collections.map.AbstractLinkedMap$LinkIterator.nextEntry(AbstractLinkedMap.java:555) > at > org.apache.commons.collections.map.AbstractLinkedMap$KeySetIterator.next(AbstractLinkedMap.java:455) > at > org.apache.commons.configuration.PropertiesConfigurationLayout.save(PropertiesConfigurationLayout.java:455) > at > org.apache.commons.configuration.PropertiesConfiguration.save(PropertiesConfiguration.java:410) > at > org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:517) > at > org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:484) > at > org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:451) > at > org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:425) > at > org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:373) > at > org.apache.commons.configuration.AbstractFileConfiguration.possiblySave(AbstractFileConfiguration.java:725) > at > org.apache.commons.configuration.AbstractFileConfiguration.clearProperty(AbstractFileConfiguration.java:764) > at > org.apache.commons.configuration.DataConfiguration.clearProperty(DataConfiguration.java:109) > at > org.apache.commons.configuration.AbstractConfiguration.setProperty(AbstractConfiguration.java:483) > This happens easily in a multi threaded application using a central > configuration with auto saved enabled. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]