Buggy code:
public Table ( Composite parent , int style ) { } void _addListener ( int eventType , Listener listener ) { } TableItem _getItem ( int index ) { } static int checkStyle ( int style ) { } int cellDataProc ( int tree_column , int cell , int tree_model , int iter , int data ) { } boolean checkData ( TableItem item ) { } protected void checkSubclass ( ) { } public void addSelectionListener ( SelectionListener listener ) { } int calculateWidth ( int column , int iter ) { } public void clear ( int index ) { } public void clear ( int start , int end ) { } public void clear ( int [ ] indices ) { } public void clearAll ( ) { } public Point computeSize ( int wHint , int hHint , boolean changed ) { } void createColumn ( TableColumn column , int index ) { } void createHandle ( int index ) { } void createItem ( TableColumn column , int index ) { } void createItem ( TableItem item , int index ) { } void createRenderers ( int columnHandle , int modelIndex , boolean check , int columnStyle ) { OS . gtk_tree_view_column_clear ( columnHandle ) ; if ( ( ( ( style ) & ( SWT . CHECK ) ) != 0 ) && check ) { OS . gtk_tree_view_column_pack_start ( columnHandle , checkRenderer , false ) ; OS . gtk_tree_view_column_add_attribute ( columnHandle , checkRenderer , active , Table . CHECKED_COLUMN ) ; if ( ( OS . GTK_VERSION ) >= ( OS . VERSION ( 2 , 2 , 0 ) ) ) { OS . gtk_tree_view_column_add_attribute ( columnHandle , checkRenderer , inconsistent , Table . GRAYED_COLUMN ) ; } if ( ( OS . GTK_VERSION ) > ( OS . VERSION ( 2 , 2 , 1 ) ) ) { OS . gtk_tree_view_column_add_attribute ( columnHandle , checkRenderer , cell_background_gdk , Table . BACKGROUND_COLUMN ) ; } if ( ownerDraw ) { OS . gtk_tree_view_column_set_cell_data_func ( columnHandle , checkRenderer , cellDataProc , handle , 0 ) ; OS . g_object_set_qdata ( checkRenderer , SWT_OBJECT_INDEX1 , columnHandle ) ; } } int pixbufRenderer = ( ownerDraw ) ? OS . g_object_new ( display . gtk_cell_renderer_pixbuf_get_type ( ) , 0 ) : OS . gtk_cell_renderer_pixbuf_new ( ) ; if ( pixbufRenderer == 0 ) error ( ERROR_NO_HANDLES ) ; int textRenderer = ( ownerDraw ) ? OS . g_object_new ( display . gtk_cell_renderer_text_get_type ( ) , 0 ) : OS . gtk_cell_renderer_text_new ( ) ; if ( textRenderer == 0 ) error ( ERROR_NO_HANDLES ) ; if ( ownerDraw ) { OS . g_object_set_qdata ( pixbufRenderer , SWT_OBJECT_INDEX1 , columnHandle ) ; OS . g_object_set_qdata ( textRenderer , SWT_OBJECT_INDEX1 , columnHandle ) ; } if ( ( ( ( style ) & ( SWT . CHECK ) ) != 0 ) && check ) { OS . g_object_set ( pixbufRenderer , mode , GTK_CELL_RENDERER_MODE_ACTIVATABLE , 0 ) ; } if ( ( columnStyle & ( SWT . RIGHT ) ) != 0 ) { OS . g_object_set ( pixbufRenderer , xalign , 1.0F , 0 ) ; OS . gtk_tree_view_column_pack_end ( columnHandle , textRenderer , false ) ; OS . gtk_tree_view_column_pack_end ( columnHandle , pixbufRenderer , true ) ; OS . gtk_tree_view_column_set_alignment ( columnHandle , 1.0F ) ; } else if ( ( columnStyle & ( SWT . CENTER ) ) != 0 ) { OS . g_object_set ( pixbufRenderer , xalign , 1.0F , 0 ) ; OS . gtk_tree_view_column_pack_start ( columnHandle , pixbufRenderer , true ) ; OS . gtk_tree_view_column_pack_end ( columnHandle , textRenderer , true ) ; OS . gtk_tree_view_column_set_alignment ( columnHandle , 0.5F ) ; } else { OS . gtk_tree_view_column_pack_start ( columnHandle , pixbufRenderer , false ) ; OS . gtk_tree_view_column_pack_start ( columnHandle , textRenderer , true ) ; OS . gtk_tree_view_column_set_alignment ( columnHandle , 0.0F ) ; } OS . gtk_tree_view_column_add_attribute ( columnHandle , pixbufRenderer , pixbuf , ( modelIndex + ( Table . CELL_PIXBUF ) ) ) ; if ( ( OS . GTK_VERSION ) > ( OS . VERSION ( 2 , 2 , 1 ) ) ) { OS . gtk_tree_view_column_add_attribute ( columnHandle , pixbufRenderer , cell_background_gdk , Table . BACKGROUND_COLUMN ) ; <START_BUG> OS . gtk_tree_view_column_add_attribute ( columnHandle , textRenderer , background_gdk , Table . BACKGROUND_COLUMN ) ; <END_BUG> } OS . gtk_tree_view_column_add_attribute ( columnHandle , textRenderer , text , ( modelIndex + ( Table . CELL_TEXT ) ) ) ; OS . gtk_tree_view_column_add_attribute ( columnHandle , textRenderer , foreground_gdk , Table . FOREGROUND_COLUMN ) ; OS . gtk_tree_view_column_add_attribute ( columnHandle , textRenderer , font_desc , Table . FONT_COLUMN ) ; boolean customDraw = firstCustomDraw ; if ( ( columnCount ) != 0 ) { for ( int i = 0 ; i < ( columnCount ) ; i ++ ) { if ( ( columns [ i ] . handle ) == columnHandle ) { customDraw = columns [ i ] . customDraw ; break ; } } } if ( ( ( ( ( style ) & ( SWT . VIRTUAL ) ) != 0 ) || customDraw ) || ( ownerDraw ) ) { OS . gtk_tree_view_column_set_cell_data_func ( columnHandle , textRenderer , cellDataProc , handle , 0 ) ; OS . gtk_tree_view_column_set_cell_data_func ( columnHandle , pixbufRenderer , cellDataProc , handle , 0 ) ; } } void createWidget ( int index ) { } GdkColor defaultBackground ( ) { } GdkColor defaultForeground ( ) { } void deregister ( ) { } public void deselect ( int index ) { } public void deselect ( int start , int end ) { } public void deselect ( int [ ] indices ) { } public void deselectAll ( ) { } void destroyItem ( TableColumn column ) { } void destroyItem ( TableItem item ) { } int eventWindow ( ) { }

Fix:
OS . gtk_tree_view_column_add_attribute ( columnHandle , textRenderer , cell_background_gdk , Table . BACKGROUND_COLUMN ) ;