Buggy code:
public class Decorations extends Canvas { Image image ; Image smallImage ; Image largeImage ; Image [ ] images ; Menu menuBar ; Menu [ ] menus ; Control savedFocus ; Button defaultButton ; Button saveDefault ; int swFlags ; int hAccel ; int nAccel ; boolean moved ; boolean resized ; boolean opened ; int oldX = OS . CW_USEDEFAULT ; int oldY = OS . CW_USEDEFAULT ; int oldWidth = OS . CW_USEDEFAULT ; int oldHeight = OS . CW_USEDEFAULT ; Decorations ( ) { } public Decorations ( Composite parent , int style ) { } void addMenu ( Menu menu ) { } void bringToTop ( ) { } static int checkStyle ( int style ) { } void checkBorder ( ) { } void checkOpened ( ) { } protected void checkSubclass ( ) { } int callWindowProc ( int hwnd , int msg , int wParam , int lParam ) { } void closeWidget ( ) { } int compare ( ImageData data1 , ImageData data2 , int width , int height , int depth ) { } Control computeTabGroup ( ) { } Control computeTabRoot ( ) { } public Rectangle computeTrim ( int x , int y , int width , int height ) { } void createAccelerators ( ) { } Image createIcon ( Image image ) { } void createHandle ( ) { } void createWidget ( ) { } void destroyAccelerators ( ) { } public void dispose ( ) { } Menu findMenu ( int hMenu ) { } void fixDecorations ( Decorations newDecorations , Control control , Menu [ ] menus ) { } public Rectangle getBounds ( ) { } public Rectangle getClientArea ( ) { } public Button getDefaultButton ( ) { } public Image getImage ( ) { } public Image [ ] getImages ( ) { } public Point getLocation ( ) { } public boolean getMaximized ( ) { } public Menu getMenuBar ( ) { } public boolean getMinimized ( ) { } String getNameText ( ) { } public Point getSize ( ) { } public String getText ( ) { } public boolean isReparentable ( ) { } boolean isTabGroup ( ) { } boolean isTabItem ( ) { } Decorations menuShell ( ) { } void releaseChildren ( boolean destroy ) { if ( ( menuBar ) != null ) { <START_BUG> menuBar . releaseChildren ( false ) ; <END_BUG> menuBar = null ; } super . releaseChildren ( destroy ) ; if ( ( menus ) != null ) { for ( int i = 0 ; i < ( menus . length ) ; i ++ ) { Menu menu = menus [ i ] ; if ( ( menu != null ) && ( ! ( menu . isDisposed ( ) ) ) ) { menu . dispose ( ) ; } } menus = null ; } } void releaseWidget ( ) { } void removeMenu ( Menu menu ) { } boolean restoreFocus ( ) { } void saveFocus ( ) { } void setBounds ( int x , int y , int width , int height , int flags , boolean defer ) { } public void setDefaultButton ( Button button ) { } void setDefaultButton ( Button button , boolean save ) { } public void setImage ( Image image ) { } void setImages ( Image image , Image [ ] images ) { } public void setImages ( Image [ ] images ) { } public void setMaximized ( boolean maximized ) { } public void setMenuBar ( Menu menu ) { } public void setMinimized ( boolean minimized ) { } void setParent ( ) { } void setPlacement ( int x , int y , int width , int height , int flags ) { } void setSavedFocus ( Control control ) { } void setSystemMenu ( ) { } public void setText ( String string ) { } public void setVisible ( boolean visible ) { } void sort ( Image [ ] images , ImageData [ ] datas , int width , int height , int depth ) { } boolean translateAccelerator ( MSG msg ) { } boolean translateMenuAccelerator ( MSG msg ) { } boolean translateMDIAccelerator ( MSG msg ) { } boolean traverseDecorations ( boolean next ) { } boolean traverseItem ( boolean next ) { } boolean traverseReturn ( ) { } CREATESTRUCT widgetCreateStruct ( ) { } int widgetExtStyle ( ) { } int widgetParent ( ) { } int widgetStyle ( ) { } int windowProc ( int hwnd , int msg , int wParam , int lParam ) { } LRESULT WM_ACTIVATE ( int wParam , int lParam ) { } LRESULT WM_CLOSE ( int wParam , int lParam ) { } LRESULT WM_HOTKEY ( int wParam , int lParam ) { } LRESULT WM_KILLFOCUS ( int wParam , int lParam ) { } LRESULT WM_MOVE ( int wParam , int lParam ) { } LRESULT WM_NCACTIVATE ( int wParam , int lParam ) { } LRESULT WM_QUERYOPEN ( int wParam , int lParam ) { } LRESULT WM_SETFOCUS ( int wParam , int lParam ) { } LRESULT WM_SIZE ( int wParam , int lParam ) { } LRESULT WM_SYSCOMMAND ( int wParam , int lParam ) { } LRESULT WM_WINDOWPOSCHANGING ( int wParam , int lParam ) { } }

Fix:
menuBar . release ( false ) ;