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

Bug 332093

Summary: SWTException in the 'Deployment Assembly' properties page
Product: [WebTools] WTP Common Tools Reporter: Aidyl Kareh <amkareh>
Component: wst.commonAssignee: Aidyl Kareh <amkareh>
Status: RESOLVED FIXED QA Contact: Carl Anderson <ccc>
Severity: normal    
Priority: P3 CC: amkareh, jsholl
Version: unspecifiedFlags: ccc: review+
Target Milestone: 3.2.3   
Hardware: PC   
OS: Windows Vista   
Whiteboard:
Attachments:
Description Flags
Proposed patch ccc: iplog+

Description Aidyl Kareh CLA 2010-12-07 17:32:32 EST
Build Identifier: WTP 3.2.3

Steps to recreate:
1) Create an EE5 project with default modules and a DD.
2) Open the 'Deployment Assembly' page and set the library directory field to an empty value and click 'OK'.
3) Open the 'Deployment Assembly' page again and set the library directory field to lib (this closes the problems panel)
4) Without closing the properties dialog, select the 'Project Facets' option from the tree view on the left (the following exception was logged)

org.eclipse.swt.SWTException: Widget is disposed
	at org.eclipse.swt.SWT.error(SWT.java:4083)
	at org.eclipse.swt.SWT.error(SWT.java:3998)
	at org.eclipse.swt.SWT.error(SWT.java:3969)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
	at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:340)
	at org.eclipse.swt.widgets.Composite.computeSize(Composite.java:226)
	at 

org.eclipse.swt.custom.ScrolledCompositeLayout.computeSize(ScrolledCompositeLayout.java:

32)
	at org.eclipse.swt.widgets.Composite.computeSize(Composite.java:233)
	at org.eclipse.swt.custom.SashFormLayout.computeSize(SashFormLayout.java:39)
	at org.eclipse.swt.widgets.Composite.computeSize(Composite.java:233)
	at org.eclipse.swt.layout.GridData.computeSize(GridData.java:502)
	at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:478)
	at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:193)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1275)
	at org.eclipse.swt.widgets.Composite.sendResize(Composite.java:979)
	at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1024)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2777)
	at org.eclipse.swt.widgets.Control.setSize(Control.java:3291)
	at 

org.eclipse.jface.preference.PreferenceDialog$PageLayout.layout(PreferenceDialog.java:12

4)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1275)
	at org.eclipse.swt.widgets.Composite.sendResize(Composite.java:979)
	at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1024)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2777)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2773)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2840)
	at 

org.eclipse.swt.custom.ScrolledCompositeLayout.layout(ScrolledCompositeLayout.java:109)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1275)
	at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1664)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4234)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:4970)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4244)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
	at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1456)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2816)
	at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1018)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2777)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2773)
	at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:689)
	at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:193)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1275)
	at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1664)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4234)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:4970)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4244)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method)
	at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:948)
	at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:914)
	at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:1138)
	at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1668)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4234)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:4970)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4244)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method)
	at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:948)
	at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:914)
	at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:1138)
	at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1668)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4234)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:4970)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4244)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method)
	at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:948)
	at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:914)
	at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:1138)
	at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1668)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4234)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:4970)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4244)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
	at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1456)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2816)
	at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1018)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2777)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2773)
	at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:689)
	at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:193)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1275)
	at org.eclipse.swt.widgets.Composite.sendResize(Composite.java:979)
	at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1024)
	at org.eclipse.swt.widgets.Decorations.setBounds(Decorations.java:871)
	at org.eclipse.swt.widgets.Shell.setBounds(Shell.java:1476)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2777)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2773)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:2840)
	at 

org.eclipse.jface.preference.PreferenceDialog.setShellSize(PreferenceDialog.java:1212)
	at 

org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1300)
	at 

org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDial

og.java:673)
	at 

org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:708)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at 

org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:7

04)
	at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:867)
	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.firePostSelectionChanged(StructuredViewer.jav

a:865)
	at 

org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1205)
	at 

org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredViewer.java:1230)
	at 

org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:251)
	at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:245)
	at org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java:419)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
	at org.eclipse.jface.window.Window.open(Window.java:801)
	at 

org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:157)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	at 

org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContribution

Item.java:584)
	at 

org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501

)
	at 

org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.jav

a:411)
	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:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at 

org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at 

org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at 

org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLa

uncher.java:110)
	at 

org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.ja

va:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	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:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)


Reproducible: Always
Comment 1 Aidyl Kareh CLA 2010-12-07 17:38:51 EST
Created attachment 184761 [details]
Proposed patch

This patch moves the location where the elements in the problems panel are disposed() so that hiding the panel no longer disposes the contents of the problems panel.
Comment 2 Carl Anderson CLA 2010-12-09 00:43:59 EST
Committed to R3_2_maintenance and HEAD for WTP 3.2.3 and WTP 3.3