Buggy code:
public class Gui implements ActionListener { private JFrame gui ; private JTextField sbml ; private JTextField series ; private JTextField noise ; private JTextField precision ; private JTextField delta ; private JButton browseSBML ; private JButton browseSeries ; private JButton generateSMT2 ; private JButton run ; private JScrollPane paramsScroll ; private JScrollPane speciesScroll ; private JLabel sbmlLabel ; private JLabel seriesLabel ; private JLabel noiseLabel ; private JLabel precisionLabel ; private JLabel deltaLabel ; private JFileChooser fc ; private JPanel paramsPanel ; private JPanel speciesPanel ; public Gui ( ) { } @ Override public void actionPerformed ( ActionEvent e ) { if ( ( e . getSource ( ) ) == ( browseSBML ) ) { int returnVal = fc . showOpenDialog ( gui ) ; if ( returnVal == ( JFileChooser . APPROVE_OPTION ) ) { sbml . setText ( fc . getSelectedFile ( ) . getAbsolutePath ( ) ) ; try { SBMLDocument document = SBMLReader . read ( new File ( sbml . getText ( ) ) ) ; List < String > parameters = new ArrayList < String > ( ) ; List < String > vars = new ArrayList < String > ( ) ; for ( Parameter param : document . getModel ( ) . getListOfParameters ( ) ) { parameters . add ( param . getId ( ) ) ; } for ( Species s : document . getModel ( ) . getListOfSpecies ( ) ) { vars . add ( s . getId ( ) ) ; } for ( Rule r : document . getModel ( ) . getListOfRules ( ) ) { if ( r . isRate ( ) ) { String var = ( ( org . sbml . jsbml . RateRule ) ( r ) ) . getVariable ( ) ; if ( parameters . contains ( var ) ) { parameters . remove ( var ) ; } vars . add ( var ) ; } } for ( Reaction reaction : document . getModel ( ) . getListOfReactions ( ) ) { for ( LocalParameter parameter : reaction . getKineticLaw ( ) . getListOfLocalParameters ( ) ) { <START_BUG> String newName = ( ( reaction . getId ( ) ) + "" ) + ( parameter . getId ( ) ) ; <END_BUG> parameters . add ( newName ) ; } } Collections . sort ( parameters ) ; Collections . sort ( vars ) ; paramsPanel . removeAll ( ) ; paramsPanel . setLayout ( new GridLayout ( ( ( parameters . size ( ) ) + 1 ) , 4 ) ) ; paramsPanel . add ( new JLabel ( "Synthesize" ) ) ; paramsPanel . add ( new JLabel ( "Name" ) ) ; paramsPanel . add ( new JLabel ( "Lower<seq2seq4repair_space>Bound" ) ) ; paramsPanel . add ( new JLabel ( "Upper<seq2seq4repair_space>Bound" ) ) ; for ( String p : parameters ) { paramsPanel . add ( new JCheckBox ( ) ) ; paramsPanel . add ( new JLabel ( p ) ) ; paramsPanel . add ( new JTextField ( "0" ) ) ; paramsPanel . add ( new JTextField ( "1000000000" ) ) ; } paramsPanel . revalidate ( ) ; speciesPanel . removeAll ( ) ; speciesPanel . setLayout ( new GridLayout ( ( ( vars . size ( ) ) + 1 ) , 3 ) ) ; speciesPanel . add ( new JLabel ( "Name" ) ) ; speciesPanel . add ( new JLabel ( "Lower<seq2seq4repair_space>Bound" ) ) ; speciesPanel . add ( new JLabel ( "Upper<seq2seq4repair_space>Bound" ) ) ; for ( String s : vars ) { speciesPanel . add ( new JLabel ( s ) ) ; speciesPanel . add ( new JTextField ( "0" ) ) ; speciesPanel . add ( new JTextField ( "1000000000" ) ) ; } speciesPanel . revalidate ( ) ; } catch ( XMLStreamException e1 ) { e1 . printStackTrace ( ) ; } catch ( IOException e1 ) { e1 . printStackTrace ( ) ; } } } else if ( ( e . getSource ( ) ) == ( browseSeries ) ) { int returnVal = fc . showOpenDialog ( gui ) ; if ( returnVal == ( JFileChooser . APPROVE_OPTION ) ) { series . setText ( fc . getSelectedFile ( ) . getAbsolutePath ( ) ) ; } } else if ( ( e . getSource ( ) ) == ( generateSMT2 ) ) { try { List < String > params = new ArrayList < String > ( ) ; for ( int i = 4 ; i < ( paramsPanel . getComponentCount ( ) ) ; i += 4 ) { if ( ( ( JCheckBox ) ( paramsPanel . getComponent ( i ) ) ) . isSelected ( ) ) { params . add ( ( ( JLabel ) ( paramsPanel . getComponent ( ( i + 1 ) ) ) ) . getText ( ) ) ; } } System . out . println ( Utility . writeSMT2ToString ( new ModelSettings ( sbml . getText ( ) . trim ( ) , series . getText ( ) . trim ( ) , params , Double . parseDouble ( noise . getText ( ) . trim ( ) ) , Double . parseDouble ( precision . getText ( ) . trim ( ) ) ) ) ) ; } catch ( NumberFormatException e1 ) { e1 . printStackTrace ( ) ; } catch ( XMLStreamException e1 ) { e1 . printStackTrace ( ) ; } catch ( IOException e1 ) { e1 . printStackTrace ( ) ; } } else if ( ( e . getSource ( ) ) == ( run ) ) { try { Map < String , Tuple < Double , Double > > variables = new HashMap < String , Tuple < Double , Double > > ( ) ;

Fix:
String newName = ( ( reaction . getId ( ) ) + "_" ) + ( parameter . getId ( ) ) ;