Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 66224 - [Workbench] Got Assertion failed using build I200406080800
Summary: [Workbench] Got Assertion failed using build I200406080800
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P2 normal (vote)
Target Milestone: 3.0 RC3   Edit
Assignee: Tod Creasey CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 66242 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-06-08 16:55 EDT by Olivier Thomann CLA
Modified: 2004-06-17 15:05 EDT (History)
5 users (show)

See Also:


Attachments
Patch (3.37 KB, patch)
2004-06-16 18:37 EDT, Tod Creasey CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Olivier Thomann CLA 2004-06-08 16:55:55 EDT
I checked existing PR, but this one seems to be different.
I got this restarting an existing workspace using I200406080800.

eclipse.buildId=I200406080800
java.fullversion=J2RE 1.4.2 IBM J9 build 20040422 (JIT enabled)
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_CA
Command-line arguments: -showlocation
!ENTRY org.eclipse.core.runtime 4 2 juin 08, 2004 11:38:18.925
!MESSAGE Problems occurred when invoking code from plug-in:
"org.eclipse.core.runtime".
!STACK 0
org.eclipse.jface.util.Assert$AssertionFailedException: Assertion failed: 
	at java.lang.Throwable.<init>(Throwable.java)
	at java.lang.Throwable.<init>(Throwable.java)
	at org.eclipse.jface.util.Assert$AssertionFailedException.<init>(Assert.java:54)
	at org.eclipse.jface.util.Assert.isTrue(Assert.java:168)
	at org.eclipse.jface.util.Assert.isTrue(Assert.java)
	at
org.eclipse.ui.internal.presentations.DefaultPartPresentation.getTabFolder(DefaultPartPresentation.java)
	at
org.eclipse.ui.internal.presentations.DefaultEditorPresentation$1.propertyChange(DefaultEditorPresentation.java:70)
	at org.eclipse.ui.plugin.AbstractUIPlugin$2.run(AbstractUIPlugin.java:267)
	at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java)
	at org.eclipse.core.runtime.Platform.run(Platform.java)
	at
org.eclipse.ui.plugin.AbstractUIPlugin$CompatibilityPreferenceStore.firePropertyChangeEvent(AbstractUIPlugin.java:265)
	at
org.eclipse.ui.plugin.AbstractUIPlugin$1.propertyChange(AbstractUIPlugin.java:205)
	at
org.eclipse.core.internal.preferences.PreferenceForwarder.preferenceChange(PreferenceForwarder.java:115)
	at
org.eclipse.core.internal.preferences.EclipsePreferences$4.run(EclipsePreferences.java:743)
	at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java)
	at org.eclipse.core.runtime.Platform.run(Platform.java)
	at
org.eclipse.core.internal.preferences.EclipsePreferences.preferenceChanged(EclipsePreferences.java)
	at
org.eclipse.core.internal.preferences.EclipsePreferences.putBoolean(EclipsePreferences.java:769)
	at
org.eclipse.core.internal.preferences.PreferenceForwarder.setValue(PreferenceForwarder.java:226)
	at
org.eclipse.ui.plugin.AbstractUIPlugin$CompatibilityPreferenceStore.setValue(AbstractUIPlugin.java:481)
	at
org.eclipse.ui.internal.ActivityPersistanceHelper.saveEnabledStates(ActivityPersistanceHelper.java:110)
	at
org.eclipse.ui.internal.ActivityPersistanceHelper.shutdown(ActivityPersistanceHelper.java:119)
	at org.eclipse.ui.internal.Workbench.shutdown(Workbench.java:1638)
	at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:468)
	at org.eclipse.ui.internal.Workbench.access$8(Workbench.java:399)
	at org.eclipse.ui.internal.Workbench$12.run(Workbench.java:571)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:569)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:545)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:463)
	at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:448)
	at org.eclipse.ui.internal.WorkbenchWindow$1.run(WorkbenchWindow.java:536)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:534)
	at org.eclipse.jface.window.Window.handleShellCloseEvent(Window.java:593)
	at org.eclipse.jface.window.Window$2.shellClosed(Window.java:544)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java)
	at org.eclipse.swt.widgets.Decorations.WM_CLOSE(Decorations.java:1487)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java)
	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java)
	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1363)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:253)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
	at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:334)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:128)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:84)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:59)
	at java.lang.reflect.Method.invoke(Method.java:390)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
	at org.eclipse.core.launcher.Main.run(Main.java:638)
	at org.eclipse.core.launcher.Main.main(Main.java:622)
Comment 1 Debbie Wilson CLA 2004-06-09 09:23:46 EDT
*** Bug 66242 has been marked as a duplicate of this bug. ***
Comment 2 Jean-Michel Lemieux CLA 2004-06-09 11:33:31 EDT
I get this at shutdown. Here is my stack trace:

!MESSAGE Problems occurred when invoking code from plug-in:
"org.eclipse.core.runtime".
!STACK 0
org.eclipse.jface.util.Assert$AssertionFailedException: Assertion failed:
        at org.eclipse.jface.util.Assert.isTrue(Assert.java:168)
        at org.eclipse.jface.util.Assert.isTrue(Assert.java:154)
        at
org.eclipse.ui.internal.presentations.DefaultPartPresentation.getTabFolder(DefaultPartPresentation.java:627)
        at
org.eclipse.ui.internal.presentations.DefaultEditorPresentation$1.propertyChange(DefaultEditorPresentation.java:70)
        at org.eclipse.ui.plugin.AbstractUIPlugin$2.run(AbstractUIPlugin.java:267)
        at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:615)
        at org.eclipse.core.runtime.Platform.run(Platform.java:758)
        at
org.eclipse.ui.plugin.AbstractUIPlugin$CompatibilityPreferenceStore.firePropertyChangeEvent(AbstractUIPlugin.java:265)
        at
org.eclipse.ui.plugin.AbstractUIPlugin$1.propertyChange(AbstractUIPlugin.java:205)
        at
org.eclipse.core.internal.preferences.PreferenceForwarder.preferenceChange(PreferenceForwarder.java:115)
        at
org.eclipse.core.internal.preferences.EclipsePreferences$4.run(EclipsePreferences.java:743)
        at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:615)
        at org.eclipse.core.runtime.Platform.run(Platform.java:758)
        at
org.eclipse.core.internal.preferences.EclipsePreferences.preferenceChanged(EclipsePreferences.java:746)
        at
org.eclipse.core.internal.preferences.EclipsePreferences.putBoolean(EclipsePreferences.java:769)
        at
org.eclipse.core.internal.preferences.PreferenceForwarder.setValue(PreferenceForwarder.java:226)
        at
org.eclipse.ui.plugin.AbstractUIPlugin$CompatibilityPreferenceStore.setValue(AbstractUIPlugin.java:481)
        at
org.eclipse.ui.internal.ActivityPersistanceHelper.saveEnabledStates(ActivityPersistanceHelper.java:110)
        at
org.eclipse.ui.internal.ActivityPersistanceHelper.shutdown(ActivityPersistanceHelper.java:119)
        at org.eclipse.ui.internal.Workbench.shutdown(Workbench.java:1638)
        at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:468)
        at org.eclipse.ui.internal.Workbench.access$8(Workbench.java:399)
        at org.eclipse.ui.internal.Workbench$12.run(Workbench.java:571)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
        at org.eclipse.ui.internal.Workbench.close(Workbench.java:569)
        at org.eclipse.ui.internal.Workbench.close(Workbench.java:545)
        at org.eclipse.ui.internal.QuitAction.run(QuitAction.java:55)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
        at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:915)
        at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:866)
        at
org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:785)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2716)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2382)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1363)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:253)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
        at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:334)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:128)
        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:324)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
        at org.eclipse.core.launcher.Main.run(Main.java:638)
        at org.eclipse.core.launcher.Main.main(Main.java:622)
Comment 3 Nick Edgar CLA 2004-06-10 12:12:33 EDT
Jim also got this in I20040610-0800.  See bug 66455.
Comment 4 Nick Edgar CLA 2004-06-10 12:18:59 EDT
This was supposed to have been fixed with the fix to bug 66000 and bug 59571,
but is clearly still happening.

Looking at the code, the preference listener should be removed in the dispose
handler in DefaultEditorPresentation.  However, there is code in the dispose
listener that would fail if the widget was really disposed, so maybe this isn't
getting called. 
Comment 5 Michael Van Meekeren CLA 2004-06-15 16:22:04 EDT
Nick, should we add some protection here, or defer since we can not recreate?
Comment 6 Nick Edgar CLA 2004-06-16 17:22:22 EDT
Just to be safe, how about we add an isDisposed() check in the various listeners
in the presentation classes.
Comment 7 Tod Creasey CLA 2004-06-16 18:21:42 EDT
I'll look at this
Comment 8 Tod Creasey CLA 2004-06-16 18:37:08 EDT
I have added disposed checks for the non-SWT listeners in the 
StackPresentation hierarchy

in
DefaultPartPresentation
    themeListener

DefaultEditorPresentation
    propertyChangeListener

DefaultViewPresentation
    propertyChangeListener

NativeStackPresentation
    childPropertyChangeListener
Comment 9 Tod Creasey CLA 2004-06-16 18:37:57 EDT
Created attachment 12341 [details]
Patch
Comment 10 Tod Creasey CLA 2004-06-16 18:43:33 EDT
Fixed. Reviewed by NE for build >20040616
Comment 11 Ines Khelifi CLA 2004-06-17 15:03:41 EDT
Verified that the patch has been committed to CVS for versions 20040616 and after.