Buggy code:
public class Spinner extends Composite { int textHandle ; int buttonHandle ; int textVisibleRgn ; int buttonVisibleRgn ; int increment = 1 ; int pageIncrement = 10 ; int digits = 0 ; static int GAP = 3 ; public Spinner ( Composite parent , int style ) { } int actionProc ( int theControl , int partCode ) { } public void addModifyListener ( ModifyListener listener ) { } public void addSelectionListener ( SelectionListener listener ) { } void addVerifyListener ( VerifyListener listener ) { } static int checkStyle ( int style ) { } protected void checkSubclass ( ) { } public Point computeSize ( int wHint , int hHint , boolean changed ) { } public Rectangle computeTrim ( int x , int y , int width , int height ) { } public void copy ( ) { } void copy ( char [ ] buffer ) { } void createHandle ( ) { int window = OS . GetControlOwner ( handle ) ; int actionProc = display . actionProc ; <START_BUG> int features = ( ( OS . kControlSupportsEmbedding ) | ( OS . kControlSupportsFocus ) ) | ( OS . kControlGetsFocusOnClick ) ; <END_BUG> int [ ] outControl = new int [ 1 ] ; OS . CreateUserPaneControl ( window , null , features , outControl ) ; if ( ( outControl [ 0 ] ) == 0 ) error ( ERROR_NO_HANDLES ) ; handle = outControl [ 0 ] ; OS . CreateLittleArrowsControl ( window , null , 0 , 0 , 100 , 1 , outControl ) ; if ( ( outControl [ 0 ] ) == 0 ) error ( ERROR_NO_HANDLES ) ; buttonHandle = outControl [ 0 ] ; OS . SetControlAction ( buttonHandle , actionProc ) ; OS . CreateEditUnicodeTextControl ( window , null , 0 , false , null , outControl ) ; if ( ( outControl [ 0 ] ) == 0 ) error ( ERROR_NO_HANDLES ) ; textHandle = outControl [ 0 ] ; OS . SetControlData ( textHandle , kControlEntireControl , kControlEditTextSingleLineTag , 1 , new byte [ ] { 1 } ) ; if ( ( ( style ) & ( SWT . READ_ONLY ) ) != 0 ) { OS . SetControlData ( textHandle , kControlEntireControl , kControlEditTextLockedTag , 1 , new byte [ ] { 1 } ) ; } setSelection ( 0 , false ) ; } public void cut ( ) { } void deregister ( ) { } void drawBackground ( int control , int context ) { } int focusHandle ( ) { } public int getDigits ( ) { } String getDecimalSeparator ( ) { } public int getIncrement ( ) { } public int getMaximum ( ) { } public int getMinimum ( ) { } public int getPageIncrement ( ) { } public int getSelection ( ) { } int getSelectionText ( ) { } int getVisibleRegion ( int control , boolean clipChildren ) { } void hookEvents ( ) { } Rect inset ( ) { } int kEventControlSetFocusPart ( int nextHandler , int theEvent , int userData ) { } int kEventUnicodeKeyPressed ( int nextHandler , int theEvent , int userData ) { } public void paste ( ) { } public void redraw ( ) { } void register ( ) { } public void removeModifyListener ( ModifyListener listener ) { } public void removeSelectionListener ( SelectionListener listener ) { } void removeVerifyListener ( VerifyListener listener ) { } void resetVisibleRegion ( int control ) { } void resizeClientArea ( ) { } boolean sendKeyEvent ( int type , Event event ) { } void setBackground ( float [ ] color ) { } public void setDigits ( int value ) { } void setFontStyle ( Font font ) { } void setForeground ( float [ ] color ) { } public void setIncrement ( int value ) { } public void setMaximum ( int value ) { } public void setMinimum ( int value ) { } public void setPageIncrement ( int value ) { } public void setSelection ( int value ) { } void setSelection ( int value , boolean notify ) { } char [ ] setText ( String string , int start , int end , boolean notify ) { } public void setValues ( int selection , int minimum , int maximum , int digits , int increment , int pageIncrement ) { } void setZOrder ( ) { } String verifyText ( String string , int start , int end , Event keyEvent ) { } }

Fix:
int features = ( OS . kControlSupportsEmbedding ) | ( OS . kControlSupportsFocus ) ;