Buggy code:
public class TableItem extends Item { Table parent ; int index = - 1 ; boolean checked ; boolean grayed ; boolean cached ; String [ ] texts ; int [ ] textWidths = new int [ 1 ] ; int customWidth = - 1 ; int fontHeight ; int [ ] fontHeights ; int imageIndent ; Image [ ] images ; Color foreground ; Color background ; String [ ] displayTexts ; Color [ ] cellForegrounds ; Color [ ] cellBackgrounds ; Font font ; Font [ ] cellFonts ; static final int MARGIN_TEXT = 3 ; public TableItem ( Table parent , int style ) { } public TableItem ( Table parent , int style , int index ) { } TableItem ( Table parent , int style , int index , boolean notifyParent ) { } void addColumn ( TableColumn column ) { } static Table checkNull ( Table table ) { } protected void checkSubclass ( ) { } void clear ( ) { } void computeDisplayText ( int columnIndex , GC gc ) { } void computeDisplayTexts ( GC gc ) { } void computeTextWidths ( GC gc ) { } public void dispose ( ) { } void dispose ( boolean notifyParent ) { } public Color getBackground ( ) { } public Color getBackground ( int columnIndex ) { } public Rectangle getBounds ( ) { } Rectangle getBounds ( boolean checkData ) { if ( checkData && ( ! ( parent . checkData ( this , true ) ) ) ) error ( ERROR_WIDGET_DISPOSED ) ; int x = getTextX ( 0 ) ; int width = ( textWidths [ 0 ] ) + ( 2 * ( TableItem . MARGIN_TEXT ) ) ; if ( ( parent . columns . length ) > 0 ) { TableColumn column = parent . columns [ 0 ] ; int right = ( column . getX ( ) ) + ( column . width ) ; if ( ( x + width ) > right ) { width = Math . max ( 0 , ( right - x ) ) ; } } <START_BUG> return new Rectangle ( x , parent . getItemY ( this ) , width , ( ( parent . itemHeight ) - 1 ) ) ; <END_BUG> } public Rectangle getBounds ( int columnIndex ) { } Rectangle getCellBounds ( int columnIndex ) { } Rectangle getCheckboxBounds ( ) { } public boolean getChecked ( ) { } int getContentWidth ( int columnIndex ) { } int getContentX ( int columnIndex ) { } String getDisplayText ( int columnIndex ) { } Rectangle getFocusBounds ( ) { } public Font getFont ( ) { } Font getFont ( boolean checkData ) { } public Font getFont ( int columnIndex ) { } Font getFont ( int columnIndex , boolean checkData ) { } int getFontHeight ( ) { } int getFontHeight ( int columnIndex ) { } public Color getForeground ( ) { } public Color getForeground ( int columnIndex ) { } public boolean getGrayed ( ) { } Rectangle getHitBounds ( ) { } public Image getImage ( ) { } public Image getImage ( int columnIndex ) { } Image getImage ( int columnIndex , boolean checkData ) { } public Rectangle getImageBounds ( int columnIndex ) { } public int getImageIndent ( ) { } String getNameText ( ) { } public Table getParent ( ) { } int getPreferredWidth ( int columnIndex ) { } public String getText ( ) { } public String getText ( int columnIndex ) { } String getText ( int columnIndex , boolean checkData ) { } public Rectangle getTextBounds ( int columnIndex ) { } int getTextX ( int columnIndex ) { } boolean isInViewport ( ) { } boolean isSelected ( ) { } boolean paint ( GC gc , TableColumn column , boolean backgroundOnly ) { } void redraw ( int x , int y , int width , int height , int columnIndex ) { } void redrawItem ( ) { } void removeColumn ( TableColumn column , int index ) { } public void setBackground ( Color value ) { } public void setBackground ( int columnIndex , Color value ) { } public void setChecked ( boolean value ) { } public void setFont ( Font value ) { } public void setFont ( int columnIndex , Font value ) { } public void setForeground ( Color value ) { } public void setForeground ( int columnIndex , Color value ) { } public void setGrayed ( boolean value ) { } public void setImage ( Image value ) { } public void setImage ( Image [ ] value ) { } public void setImage ( int columnIndex , Image value ) { } public void setImageIndent ( int indent ) { } public void setText ( int columnIndex , String value ) { } public void setText ( String value ) { } public void setText ( String [ ] value ) { } void updateColumnWidth ( TableColumn column , GC gc ) { } void updateFont ( GC gc ) { } }

Fix:
return new Rectangle ( x , parent . getItemY ( this ) , width , parent . itemHeight ) ;