Buggy code:
void fixChildren ( Shell newShell , Shell oldShell , Decorations newDecorations , Decorations oldDecorations , Menu [ ] menus ) { } void fixFocus ( Control focusControl ) { } void flagsChanged ( int id , int sel , int theEvent ) { } NSView focusView ( ) { } public boolean forceFocus ( ) { } public Accessible getAccessible ( ) { } public Color getBackground ( ) { } Color getBackgroundColor ( ) { } public Image getBackgroundImage ( ) { } public int getBorderWidth ( ) { } public Rectangle getBounds ( ) { } public boolean getDragDetect ( ) { } int getDrawCount ( ) { } public Cursor getCursor ( ) { } public boolean getEnabled ( ) { } public Font getFont ( ) { } public Color getForeground ( ) { } Color getForegroundColor ( ) { } public Object getLayoutData ( ) { } public Point getLocation ( ) { } public Menu getMenu ( ) { } int getMininumHeight ( ) { } public Monitor getMonitor ( ) { } public Composite getParent ( ) { } Control [ ] getPath ( ) { } NSBezierPath getPath ( Region region ) { } public Region getRegion ( ) { } public Shell getShell ( ) { } public Point getSize ( ) { } float getThemeAlpha ( ) { } public String getToolTipText ( ) { } public boolean getVisible ( ) { } boolean hasBorder ( ) { } boolean hasFocus ( ) { } int hitTest ( int id , int sel , NSPoint point ) { } boolean insertText ( int id , int sel , int string ) { } public int internal_new_GC ( GCData data ) { } public void internal_dispose_GC ( int context , GCData data ) { } boolean isDescribedByLabel ( ) { } public boolean isEnabled ( ) { } boolean isEnabledCursor ( ) { } boolean isFocusAncestor ( Control control ) { } public boolean isFocusControl ( ) { } public boolean isReparentable ( ) { } boolean isShowing ( ) { } boolean isTabGroup ( ) { } boolean isTabItem ( ) { } boolean isTrim ( NSView view ) { } public boolean isVisible ( ) { } void keyDown ( int id , int sel , int theEvent ) { } void keyUp ( int id , int sel , int theEvent ) { } void markLayout ( boolean changed , boolean all ) { } int menuForEvent ( int id , int sel , int theEvent ) { } Decorations menuShell ( ) { } void scrollWheel ( int id , int sel , int theEvent ) { } void mouseDown ( int id , int sel , int theEvent ) { } void moved ( ) { } public void moveAbove ( Control control ) { } public void moveBelow ( Control control ) { } Accessible new_Accessible ( Control control ) { } public void pack ( ) { } public void pack ( boolean changed ) { } public boolean print ( GC gc ) { } public void redraw ( ) { } void redraw ( boolean children ) { } public void redraw ( int x , int y , int width , int height , boolean all ) { } int regionToRects ( int message , int rgn , int r , int path ) { } void register ( ) { } void release ( boolean destroy ) { } void releaseHandle ( ) { } void releaseParent ( ) { } void releaseWidget ( ) { super . releaseWidget ( ) ; if ( ( display . currentControl ) == ( this ) ) { display . currentControl = null ; display . timerExec ( ( - 1 ) , hoverTimer ) ; } if ( ( display . grabControl ) == ( this ) ) { <START_BUG> display . grabControl = null ; <END_BUG> } if ( ( ( menu ) != null ) && ( ! ( menu . isDisposed ( ) ) ) ) { menu . dispose ( ) ; } menu = null ; layoutData = null ; if ( ( accessible ) != null ) { accessible . internal_dispose_Accessible ( ) ; } accessible = null ; region = null ; if ( ( regionPath ) != null ) regionPath . release ( ) ; regionPath = null ; } public void removeControlListener ( ControlListener listener ) { } public void removeDragDetectListener ( DragDetectListener listener ) { } public void removeFocusListener ( FocusListener listener ) { } public void removeHelpListener ( HelpListener listener ) { } public void removeKeyListener ( KeyListener listener ) { } public void removeMenuDetectListener ( MenuDetectListener listener ) { } public void removeMouseListener ( MouseListener listener ) { } public void removeMouseMoveListener ( MouseMoveListener listener ) { } public void removeMouseTrackListener ( MouseTrackListener listener ) { } public void removeMouseWheelListener ( MouseWheelListener listener ) { } public void removePaintListener ( PaintListener listener ) { } void removeRelation ( ) { } public void removeTraverseListener ( TraverseListener listener ) { } void resized ( ) { } boolean sendDragEvent ( int button , int stateMask , int x , int y ) { } boolean sendDragEvent ( NSEvent nsEvent ) { } void sendFocusEvent ( int type , boolean post ) { } boolean sendMouseEvent ( NSEvent nsEvent , int type , boolean send ) { } void setBackground ( ) { } public void setBackground ( Color color ) { } public void setBackgroundImage ( Image image ) { } void setBackground ( float [ ] color ) { } public void setBounds ( int x , int y , int width , int height ) { } void setBounds ( int x , int y , int width , int height , boolean move , boolean resize ) { } public void setBounds ( Rectangle rect ) { }

Fix:
display . setGrabControl ( null ) ;