Buggy code:
public class TreeItem extends Item { Tree parent ; TreeItem parentItem ; TreeItem [ ] items = Tree . NO_ITEMS ; int availableIndex = - 1 ; int depth = 0 ; boolean checked ; boolean grayed ; boolean expanded ; boolean cached ; String [ ] texts ; int [ ] textWidths = new int [ 1 ] ; int customWidth = - 1 ; int fontHeight ; int [ ] fontHeights ; Image [ ] images ; Color foreground ; Color background ; String [ ] displayTexts ; Color [ ] cellForegrounds ; Color [ ] cellBackgrounds ; Font font ; Font [ ] cellFonts ; static final int INDENT_HIERARCHY = 6 ; static final int MARGIN_TEXT = 3 ; public TreeItem ( Tree parent , int style ) { } public TreeItem ( Tree parent , int style , int index ) { } public TreeItem ( TreeItem parentItem , int style ) { } public TreeItem ( TreeItem parentItem , int style , int index ) { } TreeItem ( TreeItem parentItem , int style , int index , boolean notifyParent ) { } TreeItem ( Tree parent , int style , int index , boolean notifyParent ) { } void addColumn ( TreeColumn column ) { } void addItem ( TreeItem item , int index ) { } static Tree checkNull ( Tree tree ) { } static TreeItem checkNull ( TreeItem item ) { } void clear ( ) { } public void clear ( int index , boolean recursive ) { } public void clearAll ( boolean recursive ) { } void clearAll ( boolean recursive , boolean doVisualUpdate ) { } TreeItem [ ] computeAllDescendents ( ) { } int computeAvailableDescendentCount ( ) { } TreeItem [ ] computeAvailableDescendents ( ) { } void computeDisplayText ( int columnIndex , GC gc ) { } void computeDisplayTexts ( GC gc ) { } void computeTextWidths ( GC gc ) { } public void dispose ( ) { } void dispose ( boolean notifyParent ) { } void expandAncestors ( ) { } public Color getBackground ( ) { } public Color getBackground ( int columnIndex ) { } public Rectangle getBounds ( ) { } Rectangle getBounds ( boolean checkData ) { } public Rectangle getBounds ( int columnIndex ) { checkWidget ( ) ; if ( ! ( parent . checkData ( this , true ) ) ) error ( ERROR_WIDGET_DISPOSED ) ; if ( ! ( isAvailable ( ) ) ) return new Rectangle ( 0 , 0 , 0 , 0 ) ; TreeColumn [ ] columns = parent . columns ; int columnCount = columns . length ; int validColumnCount = Math . max ( 1 , columnCount ) ; if ( ! ( ( 0 <= columnIndex ) && ( columnIndex < validColumnCount ) ) ) { return new Rectangle ( 0 , 0 , 0 , 0 ) ; } if ( columnCount == 0 ) { return new Rectangle ( getContentX ( 0 ) , parent . getItemY ( this ) , getContentWidth ( 0 ) , ( ( parent . itemHeight ) - 1 ) ) ; } TreeColumn column = columns [ columnIndex ] ; if ( ( column . getOrderIndex ( ) ) == 0 ) { int x = getContentX ( columnIndex ) ; int offset = x - ( column . getX ( ) ) ; int width = Math . max ( 0 , ( ( ( column . width ) - offset ) - 1 ) ) ; return new Rectangle ( x , ( ( parent . getItemY ( this ) ) + 1 ) , width , ( ( parent . itemHeight ) - 1 ) ) ; } <START_BUG> return new Rectangle ( column . getX ( ) , ( ( parent . getItemY ( this ) ) + 1 ) , ( ( column . width ) - 1 ) , ( ( parent . itemHeight ) - 1 ) ) ; <END_BUG> } Rectangle getCellBounds ( int columnIndex ) { } Rectangle getCheckboxBounds ( ) { } public boolean getChecked ( ) { } int getContentWidth ( int columnIndex ) { } int getContentX ( int columnIndex ) { } String getDisplayText ( int columnIndex ) { } public boolean getExpanded ( ) { } Rectangle getExpanderBounds ( ) { } 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 ( ) { } Point [ ] getHconnectorEndpoints ( ) { } Rectangle getHitBounds ( ) { } public Image getImage ( ) { } public Image getImage ( int columnIndex ) { } Image getImage ( int columnIndex , boolean checkData ) { } public Rectangle getImageBounds ( int columnIndex ) { } int getIndex ( ) { } public TreeItem getItem ( int index ) { } public int getItemCount ( ) { } String getNameText ( ) { } public TreeItem [ ] getItems ( ) { } public Tree getParent ( ) { } public TreeItem getParentItem ( ) { } int getPreferredWidth ( int columnIndex ) { } public String getText ( ) { } public String getText ( int columnIndex ) { } String getText ( int columnIndex , boolean checkData ) { } int getTextX ( int columnIndex ) { } boolean hasAncestor ( TreeItem item ) { } public int indexOf ( TreeItem item ) { } boolean isAvailable ( ) { } boolean isInViewport ( ) { } boolean isLastChild ( ) { } boolean isSelected ( ) { }

Fix:
return new Rectangle ( column . getX ( ) , ( ( parent . getItemY ( this ) ) + 1 ) , column . width , ( ( parent . itemHeight ) - 1 ) ) ;