Buggy code:
public class JoshuaDecoder { private DecoderFactory decoderFactory ; private List < GrammarFactory > grammarFactories ; private ArrayList < FeatureFunction > featureFunctions ; private ArrayList < NGramLanguageModel > languageModels ; private List < StateComputer > stateComputers ; private Map < String , Integer > ruleStringToIDTable ; private static final Logger logger = Logger . getLogger ( JoshuaDecoder . class . getName ( ) ) ; public JoshuaDecoder ( String configFile ) { } private JoshuaDecoder ( ) { } public static JoshuaDecoder getUninitalizedDecoder ( ) { } public void changeBaselineFeatureWeights ( double [ ] weights ) { } public void changeDiscrminativeModelOnly ( String discrminativeModelFile ) { } public void changeFeatureWeightVector ( double [ ] weights , String discrminativeModelFile ) { } public void decodeTestSet ( String testFile , String nbestFile , String oracleFile ) throws IOException { } public void decodeTestSet ( String testFile , String nbestFile ) { } public void decodeSentence ( String testSentence , String [ ] nbests ) { } public void cleanUp ( ) { } public void visualizeHyperGraphForSentence ( String sentence ) { } public static void writeConfigFile ( double [ ] newWeights , String template , String outputFile , String newDiscriminativeModel ) { } public JoshuaDecoder initialize ( String configFile ) { } private void initializeLanguageModel ( ) throws IOException { this . languageModels = new ArrayList < NGramLanguageModel > ( ) ; for ( String lmLine : JoshuaConfiguration . lms ) { String [ ] tokens = lmLine . split ( "\\s+" ) ; String lm_type = tokens [ 0 ] ; int lm_order = Integer . parseInt ( tokens [ 1 ] ) ; boolean left_equiv_state = Boolean . parseBoolean ( tokens [ 2 ] ) ; boolean right_equiv_state = Boolean . parseBoolean ( tokens [ 3 ] ) ; <START_BUG> int lm_ceiling_cost = Integer . parseInt ( tokens [ 4 ] ) ; <END_BUG> String lm_file = tokens [ 5 ] ; if ( lm_type . equals ( "kenlm" ) ) { if ( left_equiv_state || right_equiv_state ) { throw new IllegalArgumentException ( "KenLM<seq2seq4repair_space>supports<seq2seq4repair_space>state.<seq2seq4repair_space>Joshua<seq2seq4repair_space>should<seq2seq4repair_space>get<seq2seq4repair_space>around<seq2seq4repair_space>to<seq2seq4repair_space>using<seq2seq4repair_space>it." ) ; } KenLM lm = new KenLM ( lm_order , lm_file ) ; this . languageModels . add ( lm ) ; Vocabulary . registerLanguageModel ( lm ) ; Vocabulary . id ( default_non_terminal ) ; } else if ( lm_type . equals ( "berkeleylm" ) ) { LMGrammarBerkeley lm = new LMGrammarBerkeley ( lm_order , lm_file ) ; this . languageModels . add ( lm ) ; Vocabulary . registerLanguageModel ( lm ) ; Vocabulary . id ( default_non_terminal ) ; } else if ( lm_type . equals ( "none" ) ) { } else { JoshuaDecoder . logger . warning ( "WARNING:<seq2seq4repair_space>using<seq2seq4repair_space>built-in<seq2seq4repair_space>language<seq2seq4repair_space>model;<seq2seq4repair_space>you<seq2seq4repair_space>probably<seq2seq4repair_space>didn't<seq2seq4repair_space>intend<seq2seq4repair_space>this" ) ; JoshuaDecoder . logger . warning ( "<seq2seq4repair_space>Valid<seq2seq4repair_space>lm<seq2seq4repair_space>types<seq2seq4repair_space>are<seq2seq4repair_space>'kenlm',<seq2seq4repair_space>'berkeleylm',<seq2seq4repair_space>'javalm'<seq2seq4repair_space>and<seq2seq4repair_space>'none'" ) ; this . languageModels . add ( new LMGrammarJAVA ( lm_order , lm_file , left_equiv_state , right_equiv_state ) ) ; } } } private void initializeGlueGrammar ( ) throws IOException { } private void initializeMainTranslationGrammar ( ) throws IOException { } private void initializeStateComputers ( int nGramOrder , int ngramStateID ) { } private void initializeFeatureFunctions ( ) { } public static void main ( String [ ] args ) throws IOException { } }

Fix:
double lm_ceiling_cost = Double . parseDouble ( tokens [ 4 ] ) ;