Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 367234

Summary: IllegalArgumentException in Compare editor
Product: [Technology] EGit Reporter: Carolyn MacLeod <carolynmacleod4>
Component: UIAssignee: Project Inbox <egit.ui-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: h.klene, robin
Version: 1.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Carolyn MacLeod CLA 2011-12-20 13:11:05 EST
The IAE happend in core.runtime.ListenerList.remove() but it may be triggered by something in CompareUtils.openInCompare(). Here's how I got the error:
1) In the package explorer, select 2 projects that both have several changes.
2) Right-click and select Compare with -> Branch, Tag, or Reference...
3) Type mas in the filter, and then select Remote tracking - origin/master
4) Git Tree Compare view opens.
5) Expand a bunch of the tree branches (this is bug 358394 by the way - it's a real pain to use this view... just thought I'd mention it... <g>)
6) Now double-click on one of the changed files to open a compare editor.
7) Double-click on the compare editor's tab to maximize it (makes it easier to see your changes).
8) Use the compare editor's "Next Difference/Pervious Difference" tools to walk through your changes.
9) Now double-click the compare editor's tab again to restore the editor to normal size (and so that you can see the Git Tree Compare view again).
10) Now double-click on another changed file in the Git Tree Compare view to open that in the compare editor.
This is where the IAE happened for me. Note that it does not happen every time. i.e. it isn't happening for me now. It may have happened because it was the first time since starting the Compare. I have seen it before, though, so I know it wasn't just something transient.

Here's the stack trace:
!SESSION 2011-12-19 12:43:52.218 -----------------------------------------------
eclipse.buildId=I20111209-2100
java.version=1.5.0_14
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_CA
Command-line arguments:  -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.jface 4 2 2011-12-20 12:40:06.109
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
java.lang.IllegalArgumentException
	at org.eclipse.core.runtime.ListenerList.remove(ListenerList.java:155)
	at org.eclipse.compare.structuremergeviewer.DiffNode.removeCompareInputChangeListener(DiffNode.java:124)
	at org.eclipse.team.ui.synchronize.SaveableCompareEditorInput.handleDispose(SaveableCompareEditorInput.java:209)
	at org.eclipse.compare.CompareEditorInput$4.widgetDisposed(CompareEditorInput.java:578)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:123)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:808)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446)
	at org.eclipse.compare.internal.CompareEditor.doSetInput(CompareEditor.java:283)
	at org.eclipse.compare.internal.CompareEditor.setInput(CompareEditor.java:254)
	at org.eclipse.compare.internal.CompareUIPlugin$1.run(CompareUIPlugin.java:513)
	at org.eclipse.compare.internal.CompareUIPlugin.syncExec(CompareUIPlugin.java:1265)
	at org.eclipse.compare.internal.CompareUIPlugin.internalOpenEditor(CompareUIPlugin.java:534)
	at org.eclipse.compare.internal.CompareUIPlugin.openEditorInBackground(CompareUIPlugin.java:504)
	at org.eclipse.compare.internal.CompareUIPlugin.openCompareEditor(CompareUIPlugin.java:493)
	at org.eclipse.compare.CompareUI.reuseCompareEditor(CompareUI.java:199)
	at org.eclipse.compare.CompareUI.reuseCompareEditor(CompareUI.java:180)
	at org.eclipse.egit.ui.internal.CompareUtils.openInCompare(CompareUtils.java:223)
	at org.eclipse.egit.ui.internal.dialogs.CompareTreeView.reactOnOpen(CompareTreeView.java:332)
	at org.eclipse.egit.ui.internal.dialogs.CompareTreeView.access$14(CompareTreeView.java:211)
	at org.eclipse.egit.ui.internal.dialogs.CompareTreeView$1.open(CompareTreeView.java:172)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:866)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:864)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1152)
	at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1256)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:275)
	at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:269)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:309)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:977)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:893)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:91)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:565)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:520)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	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:352)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1433)
Comment 1 Holger Klene CLA 2012-07-11 19:09:20 EDT
duplicate of bug 347558
Comment 2 Robin Stocker CLA 2013-06-04 09:18:03 EDT
Thanks for triaging, Holger!

This is a bug in Platform Team, please see bug 347558. Marked this as duplicate.

*** This bug has been marked as a duplicate of bug 347558 ***