Community
Participate
Working Groups
3.1M7 - run the snippet at the bottom and close its s3 shell, and you'll get the following: java.lang.StackOverflowError at java.lang.Thread.currentThread(Native Method) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:296) at org.eclipse.swt.widgets.Shell.getShells(Shell.java:728) at org.eclipse.swt.widgets.Shell.releaseShells(Shell.java:850) at org.eclipse.swt.widgets.Shell.releaseWidget(Shell.java:858) at org.eclipse.swt.widgets.Widget.releaseResources(Widget.java:719) at org.eclipse.swt.widgets.Shell.releaseShells(Shell.java:853) at org.eclipse.swt.widgets.Shell.releaseWidget(Shell.java:858) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:380) at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:373) at org.eclipse.swt.widgets.Shell.dispose(Shell.java:491) at win32.Main$1.widgetDisposed(Main.java:23) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:100) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:866) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Widget.releaseWidget(Widget.java:754) at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:1575) at org.eclipse.swt.widgets.Scrollable.releaseWidget(Scrollable.java:195) at org.eclipse.swt.widgets.Composite.releaseWidget(Composite.java:594) at org.eclipse.swt.widgets.Canvas.releaseWidget(Canvas.java:118) at org.eclipse.swt.widgets.Decorations.releaseWidget (Decorations.java:714) at org.eclipse.swt.widgets.Shell.releaseWidget(Shell.java:859) at org.eclipse.swt.widgets.Widget.releaseResources(Widget.java:719) at org.eclipse.swt.widgets.Shell.releaseShells(Shell.java:853) at org.eclipse.swt.widgets.Shell.releaseWidget(Shell.java:858) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:380) at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:373) at org.eclipse.swt.widgets.Shell.dispose(Shell.java:491) at win32.Main$1.widgetDisposed(Main.java:23) <snip the repeats> snippet: public static void main(String[] args) { final Display display = new Display(); Shell s1 = new Shell(display); s1.setText("s1"); s1.setBounds(10,10,100,100); final Shell s2 = new Shell(s1); s2.setText("s2"); s2.setBounds(110,110,100,100); Shell s3 = new Shell(s2); s3.setText("s3"); s3.setBounds(210,210,100,100); s1.open(); s2.open(); s3.open(); s3.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { s2.dispose(); } }); while (!s1.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
*** This bug has been marked as a duplicate of 4416 ***