Buggy code:
public class TableItem extends Item { Table parent ; String [ ] strings ; Image [ ] images ; boolean checked ; boolean grayed ; boolean cached ; Color foreground ; Color background ; Color [ ] cellForeground ; Color [ ] cellBackground ; Font font ; Font [ ] cellFont ; int width = - 1 ; public TableItem ( Table parent , int style ) { } public TableItem ( Table parent , int style , int index ) { } TableItem ( Table parent , int style , int index , boolean create ) { } static Table checkNull ( Table control ) { } int calculateWidth ( int index , GC gc ) { if ( ( index == 0 ) && ( ( width ) != ( - 1 ) ) ) return width ; int width = 0 ; Image image = getImage ( index ) ; String text = getText ( index ) ; gc . setFont ( getFont ( index ) ) ; if ( image != null ) width += ( image . getBounds ( ) . width ) + ( parent . getGap ( ) ) ; if ( ( text != null ) && ( ( text . length ( ) ) > 0 ) ) width += gc . stringExtent ( text ) . x ; if ( parent . hooks ( MeasureItem ) ) { Event event = new Event ( ) ; event . item = this ; event . index = index ; event . gc = gc ; short [ ] height = new short [ 1 ] ; OS . GetDataBrowserTableViewRowHeight ( parent . handle , height ) ; event . width = width ; event . height = height [ 0 ] ; parent . sendEvent ( MeasureItem , event ) ; <START_BUG> if ( ( parent . itemHeight ) == ( - 1 ) ) { <END_BUG> parent . itemHeight = event . height ; OS . SetDataBrowserTableViewRowHeight ( parent . handle , ( ( short ) ( event . height ) ) ) ; } width = event . width ; } if ( index == 0 ) this . width = width ; return width ; } protected void checkSubclass ( ) { } void clear ( ) { } void destroyWidget ( ) { } public Color getBackground ( ) { } public Color getBackground ( int index ) { } public Rectangle getBounds ( ) { } public Rectangle getBounds ( int index ) { } public boolean getChecked ( ) { } public Font getFont ( ) { } public Font getFont ( int index ) { } public Color getForeground ( ) { } public Color getForeground ( int index ) { } public boolean getGrayed ( ) { } public Image getImage ( ) { } public Image getImage ( int index ) { } public Rectangle getImageBounds ( int index ) { } public int getImageIndent ( ) { } String getNameText ( ) { } public Table getParent ( ) { } public String getText ( ) { } public String getText ( int index ) { } void redraw ( int propertyID ) { } void releaseHandle ( ) { } void releaseParent ( ) { } void releaseWidget ( ) { } public void setBackground ( Color color ) { } public void setBackground ( int index , Color color ) { } public void setChecked ( boolean checked ) { } public void setFont ( Font font ) { } public void setFont ( int index , Font font ) { } public void setForeground ( Color color ) { } public void setForeground ( int index , Color color ) { } public void setGrayed ( boolean grayed ) { } public void setImage ( Image [ ] images ) { } public void setImage ( int index , Image image ) { } public void setImage ( Image image ) { } public void setImageIndent ( int indent ) { } public void setText ( String [ ] strings ) { } public void setText ( int index , String string ) { } public void setText ( String string ) { } }

Fix:
if ( ( parent . itemHeight ) < ( event . height ) ) {