Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 261430 - [Viewers] IllegalArgumentException while comparing in the sync view
Summary: [Viewers] IllegalArgumentException while comparing in the sync view
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Team (show other bugs)
Version: 3.5   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 3.5 M7   Edit
Assignee: Pawel Pogorzelski CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 261143 274823 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-01-18 15:36 EST by Paul Webster CLA
Modified: 2009-06-02 07:19 EDT (History)
6 users (show)

See Also:


Attachments
Patch_v01 (1.01 KB, patch)
2009-04-15 03:01 EDT, Pawel Pogorzelski CLA
pawel.pogorzelski1: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Webster CLA 2009-01-18 15:36:39 EST
I was using the sync view and opening comparisons.  closing from the editor tab  after using the compare editor frequently generated this:

eclipse.buildId=I20090114-1322
java.fullversion=J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20080315 (JIT enabled)
J9VM - 20080314_17962_lHdSMr
JIT  - 20080130_0718ifx2_r8
GC   - 200802_08
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86 -data /opt/pwebster/workspaces/build350


Error
Sun Jan 18 13:19:33 EST 2009
An unexpected exception was thrown.

java.lang.IllegalArgumentException
	at org.eclipse.core.runtime.ListenerList.remove(ListenerList.java:155)
	at org.eclipse.team.ui.mapping.SaveableComparison.removePropertyListener(SaveableComparison.java:80)
	at org.eclipse.team.ui.synchronize.SaveableCompareEditorInput.handleDispose(SaveableCompareEditorInput.java:217)
	at org.eclipse.team.internal.ui.mapping.ModelCompareEditorInput.handleDispose(ModelCompareEditorInput.java:83)
	at org.eclipse.compare.CompareEditorInput$4.widgetDisposed(CompareEditorInput.java:528)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:117)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1156)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1180)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1161)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1024)
	at org.eclipse.swt.widgets.Control.release(Control.java:3223)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1184)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1027)
	at org.eclipse.swt.widgets.Control.release(Control.java:3223)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1184)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1027)
	at org.eclipse.swt.widgets.Control.release(Control.java:3223)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1184)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:1027)
	at org.eclipse.swt.widgets.Control.release(Control.java:3223)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:442)
	at org.eclipse.ui.internal.PartPane.dispose(PartPane.java:180)
	at org.eclipse.ui.internal.WorkbenchPartReference.dispose(WorkbenchPartReference.java:681)
	at org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchPage.java:1683)
	at org.eclipse.ui.internal.WorkbenchPage.handleDeferredEvents(WorkbenchPage.java:1390)
	at org.eclipse.ui.internal.WorkbenchPage.deferUpdates(WorkbenchPage.java:1374)
	at org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java:1348)
	at org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchPage.java:1403)
	at org.eclipse.ui.internal.EditorPane.doHide(EditorPane.java:61)
	at org.eclipse.ui.internal.PartStack.close(PartStack.java:543)
	at org.eclipse.ui.internal.EditorStack.close(EditorStack.java:206)
	at org.eclipse.ui.internal.PartStack$1.close(PartStack.java:122)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:83)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:267)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:276)
	at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1)
	at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$1.closeButtonPressed(DefaultTabFolder.java:70)
	at org.eclipse.ui.internal.presentations.PaneFolder.notifyCloseListeners(PaneFolder.java:626)
	at org.eclipse.ui.internal.presentations.PaneFolder$3.close(PaneFolder.java:206)
	at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:2188)
	at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:328)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1156)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3448)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3069)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:333)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	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:366)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:550)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:505)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1237)
Comment 1 Tomasz Zarna CLA 2009-01-26 06:21:35 EST
Similar to bug 261143.
Comment 2 Natasha D'Silva CLA 2009-02-12 13:26:21 EST
Also seeing this bug on AIX - running Eclipse 3.4.1: M20080911-1700
Comment 3 Natasha D'Silva CLA 2009-02-12 13:29:16 EST
This message is also logged when this error occurs:
Ignored attempt to add saveable that was already registered
org.eclipse.core.runtime.AssertionFailedException: unknown saveable:
org.eclipse.team.ui.synchronize.SaveableCompareEditorInput$InternalResourceSaveableComparison@47324732
from part: org.eclipse.compare.internal.CompareEditor@50985098
at org.eclipse.ui.internal.SaveablesList.logWarning(SaveablesList.java:187)
at org.eclipse.ui.internal.SaveablesList.addModel(SaveablesList.java:117)
at org.eclipse.ui.internal.SaveablesList.addModels(SaveablesList.java:289)
at
org.eclipse.ui.internal.SaveablesList.handleLifecycleEvent(SaveablesList.java:221)
at
org.eclipse.compare.internal.CompareEditor.registerSaveable(CompareEditor.java:288)
at org.eclipse.compare.internal.CompareEditor.access$4(CompareEditor.java:286)
at org.eclipse.compare.internal.CompareEditor$3.run(CompareEditor.java:340)
at
org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:155)
at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:158)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3118)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2816)
at
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:173)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:382)
at
org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
at
org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)
at
org.eclipse.ui.internal.progress.ProgressManager$3.run(ProgressManager.java:977)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at
org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:1012)
at
org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:987)
at
org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1195)
at org.eclipse.compare.internal.CompareContainer.run(CompareContainer.java:80)
at org.eclipse.compare.CompareEditorInput.run(CompareEditorInput.java:1120)
at
org.eclipse.compare.internal.merge.DocumentMerger.doDiff(DocumentMerger.java:435)
at
org.eclipse.compare.contentmergeviewer.TextMergeViewer.doDiff(TextMergeViewer.java:2754)
at
org.eclipse.compare.contentmergeviewer.TextMergeViewer.update(TextMergeViewer.java:4426)
at
org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateContent(TextMergeViewer.java:2361)
at
org.eclipse.compare.contentmergeviewer.ContentMergeViewer.internalRefresh(ContentMergeViewer.java:715)
at
org.eclipse.compare.contentmergeviewer.ContentMergeViewer.inputChanged(ContentMergeViewer.java:615)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:251)
at
org.eclipse.jdt.internal.ui.compare.JavaMergeViewer.setInput(JavaMergeViewer.java:135)
at
org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:256)
at
org.eclipse.compare.CompareEditorInput.internalSetContentPaneInput(CompareEditorInput.java:791)
at org.eclipse.compare.CompareEditorInput.access$7(CompareEditorInput.java:789)
at org.eclipse.compare.CompareEditorInput$13.run(CompareEditorInput.java:729)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.compare.CompareEditorInput.feed1(CompareEditorInput.java:723)
at
org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:701)
at
org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:524)
at
org.eclipse.compare.internal.CompareEditor.createCompareControl(CompareEditor.java:415)
at org.eclipse.compare.internal.CompareEditor.access$6(CompareEditor.java:385)
at org.eclipse.compare.internal.CompareEditor$4.run(CompareEditor.java:436)
at org.eclipse.swt.widgets.Display.timerProc(Display.java:3665)
at org.eclipse.swt.internal.motif.OS._XtAppProcessEvent(Native Method)
at org.eclipse.swt.internal.motif.OS.XtAppProcessEvent(OS.java:3771)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2800)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
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:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
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)

  
Comment 4 Szymon Brandys CLA 2009-02-16 11:45:11 EST
We are on other issues right now. Will try to investigate ASAP.
Comment 5 Pawel Pogorzelski CLA 2009-04-15 03:01:20 EDT
Created attachment 131883 [details]
Patch_v01

Patch that eliminates IllegalArgumentException being thrown.

The exception is a result of SaveableCompareEditorInput.handleDispose() being called twice.
Comment 6 Pawel Pogorzelski CLA 2009-04-15 05:27:45 EDT
*** Bug 261143 has been marked as a duplicate of this bug. ***
Comment 7 Pawel Pogorzelski CLA 2009-04-15 05:29:35 EDT
Bug 272275 has been opened to add logs around the widget creation and disposal activities in compare.
Comment 8 Szymon Brandys CLA 2009-04-17 05:04:33 EDT
Released to HEAD.
Comment 9 Szymon Brandys CLA 2009-05-05 05:17:31 EDT
*** Bug 274823 has been marked as a duplicate of this bug. ***