Buggy code:
public String [ ] getItems ( ) { } public boolean getListVisible ( ) { } String getNameText ( ) { } public void setListVisible ( boolean visible ) { } public int getOrientation ( ) { } public Point getSelection ( ) { } public int getSelectionIndex ( ) { } public String getText ( ) { } public int getTextHeight ( ) { } public int getTextLimit ( ) { } public int getVisibleItemCount ( ) { } boolean hasFocus ( ) { } public int indexOf ( String string ) { } public int indexOf ( String string , int start ) { } int mbcsToWcsPos ( int mbcsPos ) { } public void paste ( ) { } void register ( ) { } public void remove ( int index ) { } void remove ( int index , boolean notify ) { } public void remove ( int start , int end ) { } public void remove ( String string ) { } public void removeAll ( ) { } public void removeModifyListener ( ModifyListener listener ) { } public void removeSelectionListener ( SelectionListener listener ) { } public void removeVerifyListener ( VerifyListener listener ) { } boolean sendKeyEvent ( int type , int msg , int wParam , int lParam , Event event ) { } public void select ( int index ) { } void setBackgroundImage ( int hBitmap ) { } void setBackgroundPixel ( int pixel ) { } void setBounds ( int x , int y , int width , int height , int flags ) { } public void setFont ( Font font ) { } void setForegroundPixel ( int pixel ) { } public void setItem ( int index , String string ) { } public void setItems ( String [ ] items ) { } public void setOrientation ( int orientation ) { } void setScrollWidth ( ) { } void setScrollWidth ( int scrollWidth ) { } void setScrollWidth ( TCHAR buffer , boolean grow ) { } void setScrollWidth ( int newWidth , boolean grow ) { } public void setSelection ( Point selection ) { } public void setText ( String string ) { } public void setTextLimit ( int limit ) { } void setToolTipText ( Shell shell , String string ) { } public void setVisibleItemCount ( int count ) { } void subclass ( ) { } boolean translateTraversal ( MSG msg ) { } boolean traverseEscape ( ) { } boolean traverseReturn ( ) { } void unsubclass ( ) { } String verifyText ( String string , int start , int end , Event keyEvent ) { } int wcsToMbcsPos ( int wcsPos ) { } int widgetExtStyle ( ) { } int widgetStyle ( ) { } TCHAR windowClass ( ) { } int windowProc ( ) { } int windowProc ( int hwnd , int msg , int wParam , int lParam ) { } LRESULT WM_CTLCOLOR ( int wParam , int lParam ) { } LRESULT WM_GETDLGCODE ( int wParam , int lParam ) { } LRESULT WM_KILLFOCUS ( int wParam , int lParam ) { } LRESULT WM_LBUTTONDOWN ( int wParam , int lParam ) { } LRESULT WM_SETFOCUS ( int wParam , int lParam ) { } LRESULT WM_SIZE ( int wParam , int lParam ) { } LRESULT WM_WINDOWPOSCHANGING ( int wParam , int lParam ) { LRESULT result = super . WM_WINDOWPOSCHANGING ( wParam , lParam ) ; if ( result != null ) return result ; if ( OS . IsWinCE ) return result ; <START_BUG> if ( ( drawCount ) != 0 ) <END_BUG> return result ; if ( ! ( OS . IsWindowVisible ( handle ) ) ) return result ; if ( ignoreResize ) { WINDOWPOS lpwp = new WINDOWPOS ( ) ; OS . MoveMemory ( lpwp , lParam , sizeof ) ; if ( ( ( lpwp . flags ) & ( OS . SWP_NOSIZE ) ) == 0 ) { lpwp . flags |= OS . SWP_NOREDRAW ; OS . MoveMemory ( lParam , lpwp , sizeof ) ; OS . InvalidateRect ( handle , null , true ) ; RECT rect = new RECT ( ) ; OS . GetWindowRect ( handle , rect ) ; int width = ( rect . right ) - ( rect . left ) ; int height = ( rect . bottom ) - ( rect . top ) ; if ( ( width != 0 ) && ( height != 0 ) ) { int hwndParent = parent . handle ; int hwndChild = OS . GetWindow ( hwndParent , GW_CHILD ) ; OS . MapWindowPoints ( 0 , hwndParent , rect , 2 ) ; int rgn1 = OS . CreateRectRgn ( rect . left , rect . top , rect . right , rect . bottom ) ; while ( hwndChild != 0 ) { if ( hwndChild != ( handle ) ) { OS . GetWindowRect ( hwndChild , rect ) ; OS . MapWindowPoints ( 0 , hwndParent , rect , 2 ) ; int rgn2 = OS . CreateRectRgn ( rect . left , rect . top , rect . right , rect . bottom ) ; OS . CombineRgn ( rgn1 , rgn1 , rgn2 , RGN_DIFF ) ; OS . DeleteObject ( rgn2 ) ; } hwndChild = OS . GetWindow ( hwndChild , GW_HWNDNEXT ) ; } int flags = ( ( OS . RDW_ERASE ) | ( OS . RDW_FRAME ) ) | ( OS . RDW_INVALIDATE ) ; OS . RedrawWindow ( hwndParent , null , rgn1 , flags ) ; OS . DeleteObject ( rgn1 ) ; } } } return result ; } LRESULT wmChar ( int hwnd , int wParam , int lParam ) { } LRESULT wmClipboard ( int hwndText , int msg , int wParam , int lParam ) { }

Fix:
if ( ! ( getDrawing ( ) ) )