Program: 131488
Project: 131488
Buggy source:
public void run() throws ParseException, IOException {
  if (logDomain) {
    Utilities.useLogAddTable=true;
  }
  FgModel model=null;
  FeatureTemplateList templates;
  if (modelIn != null) {
    log.info("String_Node_Str" + modelIn);
    model=(FgModel)Files.deserialize(modelIn);
    templates=model.getTemplates();
  }
 else {
    templates=new FeatureTemplateList();
  }
  if (trainType != null && train != null) {
    String name="String_Node_Str";
    FgExamples data=getData(templates,trainType,train,name);
    if (model == null) {
      model=new FgModel(data,includeUnsupportedFeatures);
      if (initParams == InitParams.RANDOM) {
        model.setRandomStandardNormal();
      }
 else       if (initParams == InitParams.UNIFORM) {
      }
 else {
        throw new ParseException("String_Node_Str" + initParams);
      }
    }
 else {
      log.info("String_Node_Str");
    }
    log.info("String_Node_Str");
    CrfTrainerPrm prm=getCrfTrainerPrm();
    CrfTrainer trainer=new CrfTrainer(prm);
    trainer.train(model,data);
    trainer=null;
    List<VarConfig> predictions=decode(model,data,trainPredOut,name);
    eval(data,name,predictions);
  }
  if (modelOut != null) {
    log.info("String_Node_Str" + modelOut);
    Files.serialize(model,modelOut);
  }
  if (printModel != null) {
    log.info("String_Node_Str" + printModel);
    Writer writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(printModel),"String_Node_Str"));
    model.printModel(writer);
    writer.close();
  }
  if (test != null && testType != null) {
    templates.stopGrowth();
    String name="String_Node_Str";
    FgExamples data=getData(templates,testType,test,name);
    List<VarConfig> predictions=decode(model,data,testPredOut,name);
    eval(data,name,predictions);
  }
}

Fixed version (ground truth):
public void run() throws ParseException, IOException {
  if (logDomain) {
    Utilities.useLogAddTable=true;
  }
  FgModel model=null;
  FeatureTemplateList templates;
  if (modelIn != null) {
    log.info("String_Node_Str" + modelIn);
    model=(FgModel)Files.deserialize(modelIn);
    templates=model.getTemplates();
  }
 else {
    templates=new FeatureTemplateList();
  }
  if (trainType != null && train != null) {
    String name="String_Node_Str";
    FgExamples data=getData(templates,trainType,train,name);
    if (model == null) {
      model=new FgModel(data,includeUnsupportedFeatures);
      if (initParams == InitParams.RANDOM) {
        model.setRandomStandardNormal();
      }
 else       if (initParams == InitParams.UNIFORM) {
      }
 else {
        throw new ParseException("String_Node_Str" + initParams);
      }
    }
 else {
      log.info("String_Node_Str");
    }
    log.info("String_Node_Str");
    CrfTrainerPrm prm=getCrfTrainerPrm();
    CrfTrainer trainer=new CrfTrainer(prm);
    trainer.train(model,data);
    trainer=null;
    VarConfigPair pair=decode(model,data,trainPredOut,name);
    eval(name,pair);
  }
  if (modelOut != null) {
    log.info("String_Node_Str" + modelOut);
    Files.serialize(model,modelOut);
  }
  if (printModel != null) {
    log.info("String_Node_Str" + printModel);
    Writer writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(printModel),"String_Node_Str"));
    model.printModel(writer);
    writer.close();
  }
  if (test != null && testType != null) {
    templates.stopGrowth();
    String name="String_Node_Str";
    FgExamples data=getData(templates,testType,test,name);
    VarConfigPair pair=decode(model,data,testPredOut,name);
    eval(name,pair);
  }
}