Buggy code:
public class Sash extends Control { Cursor sizeCursor ; int lastX ; int lastY ; private static final int INCREMENT = 1 ; private static final int PAGE_INCREMENT = 9 ; public Sash ( Composite parent , int style ) { } public void addSelectionListener ( SelectionListener listener ) { } static int checkStyle ( int style ) { } int callFocusEventHandler ( int nextHandler , int theEvent ) { } public Point computeSize ( int wHint , int hHint , boolean changed ) { } void createHandle ( ) { } void drawBackground ( int control ) { } int kEventControlClick ( int nextHandler , int theEvent , int userData ) { } int kEventControlGetFocusPart ( int nextHandler , int theEvent , int userData ) { } int kEventControlSetCursor ( int nextHandler , int theEvent , int userData ) { } int kEventMouseDown ( int nextHandler , int theEvent , int userData ) { int result = super . kEventMouseDown ( nextHandler , theEvent , userData ) ; if ( result == ( OS . noErr ) ) return result ; Rect rect = new Rect ( ) ; OS . GetControlBounds ( handle , rect ) ; int startX = rect . left ; int startY = rect . top ; int width = ( rect . right ) - ( rect . left ) ; int height = ( rect . bottom ) - ( rect . top ) ; OS . GetControlBounds ( handle , rect ) ; Event event = new Event ( ) ; event . x = startX -= rect . left ; event . y = startY -= rect . top ; event . width = width ; event . height = height ; sendEvent ( Selection , event ) ; if ( isDisposed ( ) ) return result ; if ( ! ( event . doit ) ) return result ; int sizeof = org . eclipse . swt . internal . carbon . Point . sizeof ; org . eclipse . swt . internal . carbon . Point pt = new org . eclipse . swt . internal . carbon . Point ( ) ; OS . GetEventParameter ( theEvent , kEventParamMouseLocation , typeQDPoint , null , sizeof , null , pt ) ; int window = OS . GetControlOwner ( handle ) ; OS . GetWindowBounds ( window , ( ( short ) ( kWindowContentRgn ) ) , rect ) ; int offsetX = ( pt . h ) - ( rect . left ) ; int offsetY = ( pt . v ) - ( rect . top ) ; OS . GetControlBounds ( handle , rect ) ; offsetX -= rect . left ; offsetY -= rect . top ; int port = OS . GetWindowPort ( window ) ; int [ ] outModifiers = new int [ 1 ] ; short [ ] outResult = new short [ 1 ] ; org . eclipse . swt . internal . carbon . Point outPt = new org . eclipse . swt . internal . carbon . Point ( ) ; while ( ( outResult [ 0 ] ) != ( OS . kMouseTrackingMouseUp ) ) { OS . TrackMouseLocationWithOptions ( port , 0 , kEventDurationForever , outPt , outModifiers , outResult ) ; switch ( outResult [ 0 ] ) { case OS . kMouseTrackingMouseDown : case OS . kMouseTrackingMouseUp : case OS . kMouseTrackingMouseDragged : { OS . GetControlBounds ( handle , rect ) ; int x = ( outPt . h ) - ( rect . left ) ; int y = ( outPt . v ) - ( rect . top ) ; int newX = startX ; int newY = startY ; if ( ( ( style ) & ( SWT . VERTICAL ) ) != 0 ) { int clientWidth = ( rect . right ) - ( rect . left ) ; newX = Math . min ( Math . max ( 0 , ( x - offsetX ) ) , ( clientWidth - width ) ) ; } else { int clientHeight = ( rect . bottom ) - ( rect . top ) ; newY = Math . min ( Math . max ( 0 , ( y - offsetY ) ) , ( clientHeight - height ) ) ; } event = new Event ( ) ; event . x = newX ; event . y = newY ; event . width = width ; event . height = height ; sendEvent ( Selection , event ) ; if ( isDisposed ( ) ) return result ; if ( event . doit ) { setBounds ( event . x , event . y , width , height ) ; if ( isDisposed ( ) ) return result ; parent . update ( true ) ; } break ; } default : outResult [ 0 ] = OS . kMouseTrackingMouseUp ; break ; } } <START_BUG> return result ; <END_BUG> } int kEventControlSetFocusPart ( int nextHandler , int theEvent , int userData ) { } int kEventTextInputUnicodeForKeyEvent ( int nextHandler , int theEvent , int userData ) { } void releaseWidget ( ) { } public void removeSelectionListener ( SelectionListener listener ) { } int traversalCode ( int key , int theEvent ) { } }

Fix:
return OS . noErr ;