Bug 226911 - ConcurrentModificationException in DefaultOperationHistory
Summary: ConcurrentModificationException in DefaultOperationHistory
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Compare (show other bugs)
Version: 3.4   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-Compare-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-14 08:14 EDT by Benjamin Muskalla CLA
Modified: 2019-09-06 16:10 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Muskalla CLA 2008-04-14 08:14:01 EDT
Version: 3.4.0
Build id: I20080410

I don't really know when this happened. I can remember the usage of the following functions in the last hour:
* compare infrastructure:  I only used the regular compare editor for some files in my workspace, copy left/right to left/right in some cases and used the "copy all" feature once.
* editing java source code with custom templates
Sorry for not giving you more informations. I'll take a look if I can reproduce this in any way.

-- Error Log --
Date: Mon Apr 14 12:45:48 CEST 2008
Message: Unhandled event loop exception
Severity: Error
Plugin ID: org.eclipse.ui
Stack Trace:
org.eclipse.swt.SWTException: Failed to execute runnable (java.util.ConcurrentModificationException)
	at org.eclipse.swt.SWT.error(SWT.java:3773)
	at org.eclipse.swt.SWT.error(SWT.java:3691)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3347)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3005)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2351)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2315)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2181)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:477)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:472)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:112)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:375)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
Caused by: java.util.ConcurrentModificationException
	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
	at java.util.AbstractList$Itr.next(AbstractList.java:343)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.filter(DefaultOperationHistory.java:558)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.flushUndo(DefaultOperationHistory.java:616)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.dispose(DefaultOperationHistory.java:334)
	at org.eclipse.ui.operations.UndoActionHandler.flush(UndoActionHandler.java:53)
	at org.eclipse.ui.operations.OperationHistoryActionHandler.update(OperationHistoryActionHandler.java:445)
	at org.eclipse.ui.operations.OperationHistoryActionHandler$1.run(OperationHistoryActionHandler.java:133)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:130)
	... 22 more
Comment 1 Benjamin Muskalla CLA 2008-04-14 16:24:56 EDT
This just happend again while synchronizing my workspace with CVS.

-- Error Log --
Date: Mon Apr 14 20:49:14 CEST 2008
Message: Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
Severity: Error
Plugin ID: org.eclipse.core.resources
Stack Trace:
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at org.eclipse.team.internal.core.subscribers.BatchingLock$ThreadInfo.ruleContains(BatchingLock.java:214)
at org.eclipse.team.internal.core.subscribers.BatchingLock.getThreadInfo(BatchingLock.java:245)
at org.eclipse.team.internal.core.subscribers.BatchingLock.isWithinActiveOperationScope(BatchingLock.java:332)
at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.isWithinActiveOperationScope(EclipseSynchronizer.java:1620)
at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.syncFilesChangedExternally(EclipseSynchronizer.java:703)
at org.eclipse.team.internal.ccvs.core.util.SyncFileChangeListener.resourceChanged(SyncFileChangeListener.java:153)
at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:288)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:282)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:148)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:313)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1022)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1809)
at org.eclipse.core.internal.events.NotificationManager$NotifyJob.run(NotificationManager.java:39)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 2 Tomasz Zarna CLA 2008-04-15 07:27:44 EDT
Ben, do you think they are related? I'm not so sure of that. I dare say that the exception from comment 0 is more related to org.eclipse.core.commands plug-in, so I think you should talk to these guys. 

As for the one from comment 1, I can see two options here:
* synchronize access to the "rules" collection in the BatchingLock.ThreadInfo class
* make a copy of the "rules" collection before iterating over in it in the BatchingLock.ThreadInfo#ruleContains(IResource) method

I think I will go with the later.
Comment 3 Eclipse Webmaster CLA 2019-09-06 16:10:30 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.