Ian Simpson emailed me the following stack trace:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at org.jamon.eclipse.TemplateBuilder.incrementalBuild(TemplateBuilder.java:193)
at org.jamon.eclipse.TemplateBuilder.build(TemplateBuilder.java:124)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629)
.....
This definitely seems plausible:
private synchronized void incrementalBuild(IResourceDelta delta) throws CoreException
{
BuildVisitor buildVisitor = new BuildVisitor();
if (buildVisitor.hasRuntimeJar())
{
deleteProjectMarkers();
delta.accept(buildVisitor);
Set<IPath> changed = buildVisitor.getChanged();
IFolder templateDir = getNature().getTemplateSourceFolder();
for (IPath s: changed)
{
for (String dependency : m_dependencies.getDependenciesOf(s.toString()))
{
buildVisitor.visit(templateDir.findMember( <<< could result in changed being added to.
new Path(dependency).addFileExtension(
JamonNature.JAMON_EXTENSION)));
}
I'm a bit surprised we've not run into this previously...
Anonymous
For Ian Simpson, this started after upgrading to eclipse 3.6