Buggy code:
public class Composite extends Scrollable { Layout layout ; int font ; WINDOWPOS [ ] lpwp ; Control [ ] tabList ; int layoutCount = 0 ; static final char [ ] EDIT = new char [ ] { 'E' , 'D' , 'I' , 'T' , 0 } ; Composite ( ) { } public Composite ( Composite parent , int style ) { } Control [ ] _getChildren ( ) { } Control [ ] _getTabList ( ) { } public void changed ( Control [ ] changed ) { } void checkBuffered ( ) { } protected void checkSubclass ( ) { } Control [ ] computeTabList ( ) { } public Point computeSize ( int wHint , int hHint , boolean changed ) { } void createHandle ( ) { } Composite findDeferredControl ( ) { } Menu [ ] findMenus ( Control control ) { } void fixChildren ( Shell newShell , Shell oldShell , Decorations newDecorations , Decorations oldDecorations , Menu [ ] menus ) { } void fixTabList ( Control control ) { } public Control [ ] getChildren ( ) { } int getChildrenCount ( ) { } public Layout getLayout ( ) { } public Control [ ] getTabList ( ) { } boolean hooksKeys ( ) { } public boolean getLayoutDeferred ( ) { } public boolean isLayoutDeferred ( ) { } public void layout ( ) { } public void layout ( boolean changed ) { } public void layout ( boolean changed , boolean all ) { } public void layout ( Control [ ] changed ) { } void markLayout ( boolean changed , boolean all ) { } Point minimumSize ( int wHint , int hHint , boolean changed ) { } boolean redrawChildren ( ) { } void releaseChildren ( boolean destroy ) { Control [ ] children = _getChildren ( ) ; for ( int i = 0 ; i < ( children . length ) ; i ++ ) { Control child = children [ i ] ; if ( ( child != null ) && ( ! ( child . isDisposed ( ) ) ) ) { <START_BUG> child . releaseChildren ( false ) ; <END_BUG> } } super . releaseChildren ( destroy ) ; } void releaseWidget ( ) { } void removeControl ( Control control ) { } void resizeChildren ( ) { } boolean resizeChildren ( boolean defer , WINDOWPOS [ ] pwp ) { } void resizeEmbeddedHandle ( int embeddedHandle , int width , int height ) { } boolean setFixedFocus ( ) { } public boolean setFocus ( ) { } public void setLayout ( Layout layout ) { } public void setLayoutDeferred ( boolean defer ) { } public void setTabList ( Control [ ] tabList ) { } void setResizeChildren ( boolean resize ) { } boolean setTabGroupFocus ( ) { } String toolTipText ( NMTTDISPINFO hdr ) { } boolean translateMnemonic ( Event event , Control control ) { } boolean translateTraversal ( MSG msg ) { } boolean updateFont ( Font oldFont , Font newFont ) { } void updateLayout ( boolean resize , boolean all ) { } int widgetStyle ( ) { } LRESULT WM_ERASEBKGND ( int wParam , int lParam ) { } LRESULT WM_GETDLGCODE ( int wParam , int lParam ) { } LRESULT WM_GETFONT ( int wParam , int lParam ) { } LRESULT WM_LBUTTONDOWN ( int wParam , int lParam ) { } LRESULT WM_NCPAINT ( int wParam , int lParam ) { } LRESULT WM_NOTIFY ( int wParam , int lParam ) { } LRESULT WM_PARENTNOTIFY ( int wParam , int lParam ) { } LRESULT WM_PAINT ( int wParam , int lParam ) { } LRESULT WM_PRINTCLIENT ( int wParam , int lParam ) { } LRESULT WM_SETFONT ( int wParam , int lParam ) { } LRESULT WM_SIZE ( int wParam , int lParam ) { } LRESULT WM_SYSCOLORCHANGE ( int wParam , int lParam ) { } LRESULT WM_SYSCOMMAND ( int wParam , int lParam ) { } }

Fix:
child . release ( false ) ;