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

Bug 529899

Summary: SWTError with session editor and representation block
Product: [Modeling] Sirius Reporter: Pierre Guilet <pierre.guilet>
Component: CoreAssignee: Project inbox <sirius.core-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: julien.dupont, laurent.fasani, pierre-charles.david
Version: 5.1.0Keywords: triaged
Target Milestone: 5.1.1   
Hardware: PC   
OS: Windows 10   
Whiteboard:

Description Pierre Guilet CLA 2018-01-16 11:10:09 EST
An SWTError occurs when clicking on the tree viewer of the session editor's representations block when properties view is visible and we just click on the outline view before. The SWTError make EClipse asking user to quit workbench

The exception is the following:

org.eclipse.swt.SWTError: No more handles
	at org.eclipse.swt.SWT.error(SWT.java:4559)
	at org.eclipse.swt.SWT.error(SWT.java:4448)
	at org.eclipse.swt.SWT.error(SWT.java:4419)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:482)
	at org.eclipse.swt.widgets.Control.createHandle(Control.java:718)
	at org.eclipse.swt.widgets.Composite.createHandle(Composite.java:292)
	at org.eclipse.swt.widgets.ToolBar.createHandle(ToolBar.java:304)
	at org.eclipse.swt.widgets.Control.createWidget(Control.java:758)
	at org.eclipse.swt.widgets.Scrollable.createWidget(Scrollable.java:151)
	at org.eclipse.swt.widgets.ToolBar.createWidget(ToolBar.java:405)
	at org.eclipse.swt.widgets.Control.<init>(Control.java:112)
	at org.eclipse.swt.widgets.Scrollable.<init>(Scrollable.java:82)
	at org.eclipse.swt.widgets.Composite.<init>(Composite.java:96)
	at org.eclipse.swt.widgets.ToolBar.<init>(ToolBar.java:105)
	at org.eclipse.swt.custom.CTabFolder.setButtonBounds(CTabFolder.java:2498)
	at org.eclipse.swt.custom.CTabFolder.updateItems(CTabFolder.java:3786)
	at org.eclipse.swt.custom.CTabFolder.updateItems(CTabFolder.java:3717)
	at org.eclipse.swt.custom.CTabFolder.onResize(CTabFolder.java:2110)
	at org.eclipse.swt.custom.CTabFolder.lambda$0(CTabFolder.java:335)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1084)
	at org.eclipse.swt.widgets.Control.WM_SIZE(Control.java:5511)
	at org.eclipse.swt.widgets.Scrollable.WM_SIZE(Scrollable.java:367)
	at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1763)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4918)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5178)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5743)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4931)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
	at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1482)
	at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3304)
	at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1079)
	at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3265)
	at org.eclipse.swt.widgets.Control.setSizeInPixels(Control.java:3829)
	at org.eclipse.swt.widgets.Control.setSize(Control.java:3859)
	at org.eclipse.swt.widgets.Control.pack(Control.java:2214)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.adjustTopRight(StackRenderer.java:812)
	at org.eclipse.ui.internal.e4.compatibility.ActionBars.updateActionBars(ActionBars.java:111)
	at org.eclipse.ui.part.PageBookView.showPageRec(PageBookView.java:1007)
	at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:733)
	at org.eclipse.ui.views.properties.PropertySheet.partActivated(PropertySheet.java:435)
	at org.eclipse.ui.part.PageBookView$1.partActivated(PageBookView.java:1028)
	at org.eclipse.ui.internal.WorkbenchPage$15.run(WorkbenchPage.java:4999)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:4996)
	at org.eclipse.ui.internal.WorkbenchPage.access$19(WorkbenchPage.java:4975)
	at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:212)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$3.run(PartServiceImpl.java:250)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivated(PartServiceImpl.java:247)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:756)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:681)
	at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:95)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.lambda$0(ContributedPartRenderer.java:60)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
	at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1542)
	at org.eclipse.swt.widgets.Shell.WM_MOUSEACTIVATE(Shell.java:2467)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4887)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1657)
	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555)
	at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1463)
	at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:6089)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1555)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941)
	at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:6188)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191)
	at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3152)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3812)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	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:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)

Steps to reproduce:
1- Create a new modeling project
2- Open session editor on the aird
3- Make sure the properties view is visible
4- Click on outline view
5- Click on representations block

KO the SWTError occurs asking user to quit workbench because of no more handles.
Comment 1 Pierre Guilet CLA 2018-01-16 11:59:22 EST
The problem is caused by the simultaneous usage of a Sirius bundle in main OS and a VM provider.

Virtualization make somehow the Sirius bundle missing memory causing no more handle errors
Comment 2 Pierre Guilet CLA 2018-01-16 12:00:53 EST
Main OS is windows 10, virtualized OS is Xubuntu and hardware configuration is using three screens.
Comment 3 Pierre-Charles David CLA 2018-01-17 10:51:16 EST
From the symptoms it looks a lot like https://bugs.eclipse.org/bugs/show_bug.cgi?id=402983, which are caused by other software and/or multi-monitor setups. Pierre has looked at possible causes on our side using Sleak and the SWT leak analysis from YourKit, but could not find anything.
Comment 4 Laurent Fasani CLA 2018-01-31 11:41:00 EST
validated because of WONTFIX status
Comment 5 Pierre-Charles David CLA 2018-02-01 03:25:27 EST
Available in Sirius 5.1.1. See https://wiki.eclipse.org/Sirius/5.1.1 for details.