Buggy code:
public class Shell extends Decorations { int shellHandle ; int focusProxy ; boolean reparented ; boolean realized ; boolean moved ; boolean resized ; boolean opened ; int oldX ; int oldY ; int oldWidth ; int oldHeight ; Control lastActive ; Region region ; static final int MAXIMUM_TRIM = 128 ; static final byte [ ] WM_DELETE_WINDOW = Converter . wcsToMbcs ( null , "WM_DELETE_WINDOW" ) ; static final byte [ ] _NET_WM_STATE = Converter . wcsToMbcs ( null , "_NET_WM_STATE" ) ; static final byte [ ] _NET_WM_STATE_MAXIMIZED_VERT = Converter . wcsToMbcs ( null , "_NET_WM_STATE_MAXIMIZED_VERT" ) ; static final byte [ ] _NET_WM_STATE_MAXIMIZED_HORZ = Converter . wcsToMbcs ( null , "_NET_WM_STATE_MAXIMIZED_HORZ" ) ; public Shell ( ) { } public Shell ( int style ) { } public Shell ( Display display ) { } public Shell ( Display display , int style ) { } Shell ( Display display , Shell parent , int style , int handle ) { } public Shell ( Shell parent ) { } public Shell ( Shell parent , int style ) { } static int checkStyle ( int style ) { } public static Shell motif_new ( Display display , int handle ) { } public void addShellListener ( ShellListener listener ) { } void adjustTrim ( ) { } int borderHandle ( ) { } void bringToTop ( boolean force ) { } void checkOpen ( ) { } public void close ( ) { } void closeWidget ( ) { } public Rectangle computeTrim ( int x , int y , int width , int height ) { } void createFocusProxy ( ) { } void createHandle ( int index ) { } void deregister ( ) { } void destroyWidget ( ) { } public void dispose ( ) { } void enableWidget ( boolean enabled ) { } Composite findDeferredControl ( ) { } public void forceActive ( ) { } public int getBorderWidth ( ) { } public Rectangle getBounds ( ) { } void getBounds ( Point location , Point size , Rectangle bounds ) { } public int getImeInputMode ( ) { } public Point getLocation ( ) { } public boolean getMaximized ( ) { } public Point getMinimumSize ( ) { } public Region getRegion ( ) { } public Shell getShell ( ) { } public Shell [ ] getShells ( ) { } public Point getSize ( ) { } public boolean getVisible ( ) { } boolean hasBorder ( ) { } void hookEvents ( ) { } int imeHeight ( ) { } public boolean isEnabled ( ) { } boolean isModal ( ) { } public boolean isVisible ( ) { } void manageChildren ( ) { } public void open ( ) { } void propagateWidget ( boolean enabled ) { } void realizeWidget ( ) { } void register ( ) { } void releaseChildren ( boolean destroy ) { Shell [ ] shells = getShells ( ) ; for ( int i = 0 ; i < ( shells . length ) ; i ++ ) { Shell shell = shells [ i ] ; if ( ( shell != null ) && ( ! ( shell . isDisposed ( ) ) ) ) { <START_BUG> shell . releaseChildren ( false ) ; <END_BUG> } } super . releaseChildren ( destroy ) ; } void releaseHandle ( ) { } void releaseParent ( ) { } void releaseWidget ( ) { } public void removeShellListener ( ShellListener listener ) { } public void setActive ( ) { } void setActiveControl ( Control control ) { } public void setImeInputMode ( int mode ) { } boolean setBounds ( int x , int y , int width , int height , boolean move , boolean resize ) { } public void setEnabled ( boolean enabled ) { } public void setMaximized ( boolean maximized ) { } public void setMinimized ( boolean minimized ) { } public void setMinimumSize ( int width , int height ) { } public void setMinimumSize ( Point size ) { } void setParentTraversal ( ) { } public void setRegion ( Region region ) { } public void setText ( String string ) { } public void setVisible ( boolean visible ) { } void setZOrder ( Control control , boolean above ) { } int topHandle ( ) { } boolean traverseEscape ( ) { } int trimHeight ( ) { } int trimLeft ( ) { } int trimTop ( ) { } int trimWidth ( ) { } void updateResizable ( int width , int height ) { } int WM_DELETE_WINDOW ( int w , int client_data , int call_data ) { } int XFocusChange ( int w , int client_data , int call_data , int continue_to_dispatch ) { } int XStructureNotify ( int w , int client_data , int call_data , int continue_to_dispatch ) { } }

Fix:
shell . release ( false ) ;