Buggy code:
class TopModel extends AbstractTableModel { private HashMap < String , TopModel . TopRow > m_map = new HashMap < String , TopModel . TopRow > ( ) ; private ArrayList < TopModel . TopRow > m_rows = new ArrayList < TopModel . TopRow > ( ) ; void addRow ( NewContract contract , int position , double avgCost ) { } public ArrayList < TopModel . TopRow > getRowsList ( ) { } void addRow ( TopModel . TopRow row ) { } public void desubscribe ( ) { } @ Override public int getRowCount ( ) { } @ Override public int getColumnCount ( ) { } @ Override public String getColumnName ( int col ) { } @ Override public Object getValueAt ( int rowIn , int col ) { } @ Override public boolean isCellEditable ( int rowSet , int col ) { } @ Override public void setValueAt ( Object value , int rowSet , int col ) { TopModel . TopRow row = m_rows . get ( rowSet ) ; SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy//MM//dd-HH:mm:ss" ) ; Double tmp_double = 0.0 ; Integer tmp_int = 0 ; switch ( col ) { case 12 : row . m_prePosition = new Integer ( value . toString ( ) ) ; INSTANCE . getDemoLogger ( ) . info ( ( "PrePosition:<seq2seq4repair_space>" + ( row . m_prePosition ) ) ) ; break ; case 15 : tmp_int = new Integer ( value . toString ( ) ) ; if ( tmp_int >= 0 ) { row . m_boxtradinglimit = tmp_int ; INSTANCE . getDemoLogger ( ) . info ( ( "BoxTradinglimit:<seq2seq4repair_space>" + tmp_int ) ) ; fireTableDataChanged ( ) ; } break ; case 16 : tmp_int = new Integer ( value . toString ( ) ) ; if ( tmp_int >= 0 ) { row . m_stoptradinglimit = tmp_int ; INSTANCE . getDemoLogger ( ) . info ( ( "StopTradinglimit:<seq2seq4repair_space>" + tmp_int ) ) ; fireTableDataChanged ( ) ; } break ; case 17 : tmp_int = new Integer ( value . toString ( ) ) ; if ( ( ( ( row . getPosition ( ) ) + tmp_int ) <= 1 ) && ( tmp_int >= 0 ) ) { row . m_unit = tmp_int ; INSTANCE . getDemoLogger ( ) . info ( ( "trading<seq2seq4repair_space>unit:<seq2seq4repair_space>" + tmp_int ) ) ; fireTableDataChanged ( ) ; } else { INSTANCE . getDemoLogger ( ) . info ( "trading<seq2seq4repair_space>unit<seq2seq4repair_space>larger<seq2seq4repair_space>than<seq2seq4repair_space>short<seq2seq4repair_space>position<seq2seq4repair_space>" ) ; } break ; case 18 : if ( value . toString ( ) . equals ( "init" ) ) { row . m_unit = 0 ; row . m_max = 0 ; row . m_min = 0 ; row . m_boxTradingCounter = 0 ; row . m_lmtTradingCounter = 0 ; row . m_prePosition = 9999 ; row . m_boxtradinglimit = 35 ; row . m_stoptradinglimit = 7 ; row . m_lmt = 0 ; row . m_offset = 0 ; if ( ( row . m_status ) == ( TradingStatus . Stop ) ) { INSTANCE . controller ( ) . reqOptionMktData ( row . getContract ( ) , "" , false , row ) ; <START_BUG> INSTANCE . getDemoLogger ( ) . info ( "stop<seq2seq4repair_space>market<seq2seq4repair_space>data<seq2seq4repair_space>flow" ) ; <END_BUG> } row . setStatus ( Init ) ; } else if ( value . toString ( ) . equals ( "stop" ) ) { row . setStatus ( Stop ) ; INSTANCE . controller ( ) . cancelOptionMktData ( row ) ; INSTANCE . getDemoLogger ( ) . info ( "stop<seq2seq4repair_space>market<seq2seq4repair_space>data<seq2seq4repair_space>flow" ) ; } else if ( value . toString ( ) . equals ( "sm" ) ) { row . setStatus ( S_M ) ; } else if ( value . toString ( ) . equals ( "bm" ) ) { row . setStatus ( B_M ) ; } else if ( value . toString ( ) . equals ( "blo" ) ) { row . setStatus ( B_L_O ) ; } else if ( value . toString ( ) . equals ( "bl" ) ) { row . setStatus ( B_L ) ; } INSTANCE . getDemoLogger ( ) . info ( ( "status:<seq2seq4repair_space>" + ( value . toString ( ) ) ) ) ; fireTableDataChanged ( ) ; break ; case 19 : tmp_double = new Double ( value . toString ( ) ) ; if ( ( ( row . m_status ) == ( TradingStatus . Init ) ) || ( ( row . m_status ) == ( TradingStatus . B_M ) ) ) { if ( ( ( ( tmp_double >= 0.0 ) && ( tmp_double > ( row . m_bid ) ) ) && ( tmp_double > ( row . m_min ) ) ) && ( tmp_double < ( row . m_lmt ) ) ) { row . m_max = tmp_double ; INSTANCE . getDemoLogger ( ) . info ( ( "Max:<seq2seq4repair_space>" + tmp_double ) ) ; fireTableDataChanged ( ) ; } } else if ( ( ( ( row . m_status ) == ( TradingStatus . S_M ) ) || ( ( row . m_status ) == ( TradingStatus . B_L ) ) ) || ( ( row . m_status ) == ( TradingStatus . B_L_O ) ) ) { if ( ( ( tmp_double >= 0.0 ) && ( tmp_double > ( row . m_min ) ) ) && ( tmp_double < ( row . m_lmt ) ) ) { row . m_max = tmp_double ; INSTANCE . getDemoLogger ( ) . info ( ( "Max:<seq2seq4repair_space>" + tmp_double ) ) ; fireTableDataChanged ( ) ; } } break ; case 20 : tmp_double = new Double ( value . toString ( ) ) ;

Fix:
INSTANCE . getDemoLogger ( ) . info ( "start<seq2seq4repair_space>market<seq2seq4repair_space>data<seq2seq4repair_space>flow" ) ;