[ https://issues.apache.org/jira/browse/FELIX-3416?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Nodet resolved FELIX-3416. ------------------------------------ Resolution: Fixed Fix Version/s: fileinstall-3.2.4 Assignee: Guillaume Nodet URL: http://svn.apache.org/viewvc?rev=1348901&view=rev > ConcurrentModificationException in > DirectoryWatcher.findBundlesWithFragmentsToRefresh > ------------------------------------------------------------------------------------- > > Key: FELIX-3416 > URL: https://issues.apache.org/jira/browse/FELIX-3416 > Project: Felix > Issue Type: Bug > Components: File Install > Affects Versions: fileinstall-3.2.0 > Reporter: Matt Magoffin > Assignee: Guillaume Nodet > Fix For: fileinstall-3.2.4 > > > I recently upgraded to File Install 3.2.0, and while testing an application > came across this exception: > In main loop, we have serious trouble: > java.util.ConcurrentModificationException > java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) > at java.util.HashMap$KeyIterator.next(HashMap.java:828) > at > org.apache.felix.fileinstall.internal.DirectoryWatcher.findBundlesWithFragmentsToRefresh(DirectoryWatcher.java:1247) > at > org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:475) > at > org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:286) > Looking at the code, in the findBundlesWithFragmentsToRefresh() method, I see > it iterates over a set while adding to the set, which violates the contract > of the java.util.HashSet instance passed into the method: > protected void findBundlesWithFragmentsToRefresh(Set toRefresh) { > for (Iterator iterator = toRefresh.iterator(); iterator.hasNext();) { > ... > toRefresh.add(hostBundle); > } > } > Perhaps a temporary Set is needed within the iteration, so the found bundles > can be added to the toRefresh set after the iteration loop? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira