Buggy code:
public class Snippet283 { public static void main ( String [ ] args ) { Display display = new Display ( ) ; Image image = new Image ( display , Snippet283 . class . getResourceAsStream ( "eclipse.png" ) ) ; Shell shell = new Shell ( display ) ; shell . setLayout ( new FillLayout ( ) ) ; final Table table = new Table ( shell , SWT . FULL_SELECTION ) ; for ( int i = 0 ; i < 8 ; i ++ ) { TableItem item = new TableItem ( table , SWT . NONE ) ; item . setText ( ( ( "Item<seq2seq4repair_space>" + i ) + "<seq2seq4repair_space>with<seq2seq4repair_space>long<seq2seq4repair_space>text<seq2seq4repair_space>that<seq2seq4repair_space>scrolls." ) ) ; if ( ( i % 2 ) == 1 ) item . setImage ( image ) ; } table . addListener ( MouseDown , new Listener ( ) { public void handleEvent ( Event event ) { Rectangle rect = table . getClientArea ( ) ; Point point = new Point ( event . x , event . y ) ; if ( ( table . getItem ( point ) ) != null ) return ; for ( int i = table . getTopIndex ( ) ; i < ( table . getItemCount ( ) ) ; i ++ ) { TableItem item = table . getItem ( i ) ; Rectangle itemRect = item . getBounds ( ) ; if ( ! ( itemRect . intersects ( rect ) ) ) return ; itemRect . x = rect . x ; itemRect . width = rect . width ; if ( itemRect . contains ( point ) ) { table . setSelection ( item ) ; Event selectionEvent = new Event ( ) ; selectionEvent . item = item ; table . notifyListeners ( Selection , selectionEvent ) ; return ; } } } } ) ; table . addListener ( EraseItem , new Listener ( ) { public void handleEvent ( Event event ) { event . detail &= ~ ( SWT . FOREGROUND ) ; String osName = System . getProperty ( "os.name" ) ; if ( ( osName != null ) && ( osName . contains ( "Windows" ) ) ) { <START_BUG> if ( ! ( osName . contains ( "Vista" ) ) ) { <END_BUG> event . detail &= ~ ( ( ( ( SWT . FOREGROUND ) | ( SWT . SELECTED ) ) | ( SWT . HOT ) ) | ( SWT . FOCUSED ) ) ; GC gc = event . gc ; TableItem item = ( ( TableItem ) ( event . item ) ) ; Rectangle rect = table . getClientArea ( ) ; Rectangle itemRect = item . getBounds ( ) ; itemRect . x = rect . x ; itemRect . width = rect . width ; gc . setClipping ( ( ( Rectangle ) ( null ) ) ) ; gc . fillRectangle ( itemRect ) ; } } } } ) ; table . addListener ( PaintItem , new Listener ( ) { public void handleEvent ( Event event ) { TableItem item = ( ( TableItem ) ( event . item ) ) ; GC gc = event . gc ; Image image = item . getImage ( 0 ) ; String text = item . getText ( 0 ) ; Point textExtent = gc . stringExtent ( text ) ; Rectangle imageRect = item . getImageBounds ( 0 ) ; Rectangle textRect = item . getTextBounds ( 0 ) ; int textY = ( textRect . y ) + ( Math . max ( 0 , ( ( ( textRect . height ) - ( textExtent . y ) ) // 2 ) ) ) ; if ( image == null ) { gc . drawString ( text , imageRect . x , textY , true ) ; } else { Rectangle imageExtent = image . getBounds ( ) ; int imageY = ( imageRect . y ) + ( Math . max ( 0 , ( ( ( imageRect . height ) - ( imageExtent . height ) ) // 2 ) ) ) ; gc . drawImage ( image , imageRect . x , imageY ) ; gc . drawString ( text , textRect . x , textY , true ) ; } } } ) ; shell . pack ( ) ; shell . open ( ) ; while ( ! ( shell . isDisposed ( ) ) ) { if ( ! ( display . readAndDispatch ( ) ) ) display . sleep ( ) ; } display . dispose ( ) ; } }

Fix:
if ( ( ! ( osName . contains ( "Vista" ) ) ) && ( ! ( osName . contains ( "unknown" ) ) ) ) {