Program: 21303
Project: 21303
Buggy source:
public void updateModel(DataFlink<DataInstance> dataUpdate){
  try {
    final ExecutionEnvironment env=dataUpdate.getDataSet().getExecutionEnvironment();
    CompoundVector parameterPrior=this.svb.getNaturalParameterPrior();
    DataSet<CompoundVector> paramSet=env.fromElements(parameterPrior);
    ConvergenceELBO convergenceELBO=new ConvergenceELBO(this.globalThreshold);
    IterativeDataSet<CompoundVector> loop=paramSet.iterate(maximumGlobalIterations).registerAggregationConvergenceCriterion("String_Node_Str" + this.dag.getName(),new DoubleSumAggregator(),convergenceELBO);
    Configuration config=new Configuration();
    config.setString(ParameterLearningAlgorithm.BN_NAME,this.dag.getName());
    config.setBytes(SVB,Serialization.serializeObject(svb));
    DataOnMemory<DataInstance> emtpyBatch=new DataOnMemoryListContainer<DataInstance>(dataUpdate.getAttributes());
    DataSet<DataOnMemory<DataInstance>> unionData=dataUpdate.getBatchedDataSet(this.batchSize).union(env.fromCollection(Arrays.asList(emtpyBatch),TypeExtractor.getForClass((Class<DataOnMemory<DataInstance>>)Class.forName("String_Node_Str"))));
    DataSet<CompoundVector> newparamSet=unionData.map(new ParallelVBMap()).withParameters(config).withBroadcastSet(loop,"String_Node_Str" + this.dag.getName()).reduce(new ParallelVBReduce());
    DataSet<CompoundVector> finlparamSet=loop.closeWith(newparamSet);
    parameterPrior.sum(finlparamSet.collect().get(0));
    this.svb.updateNaturalParameterPrior(parameterPrior);
    this.globalELBO=convergenceELBO.getELBO();
  }
 catch (  Exception ex) {
    throw new RuntimeException(ex.getMessage());
  }
}

Fixed version (ground truth):
public void updateModel(DataFlink<DataInstance> dataUpdate){
  final ExecutionEnvironment env=dataUpdate.getDataSet().getExecutionEnvironment();
  CompoundVector parameterPrior=this.svb.getNaturalParameterPrior();
  DataSet<CompoundVector> paramSet=env.fromElements(parameterPrior);
  ConvergenceELBO convergenceELBO=new ConvergenceELBO(this.globalThreshold);
  IterativeDataSet<CompoundVector> loop=paramSet.iterate(maximumGlobalIterations).registerAggregationConvergenceCriterion("String_Node_Str" + this.dag.getName(),new DoubleSumAggregator(),convergenceELBO);
  Configuration config=new Configuration();
  config.setString(ParameterLearningAlgorithm.BN_NAME,this.dag.getName());
  config.setBytes(SVB,Serialization.serializeObject(svb));
  DataOnMemory<DataInstance> emtpyBatch=new DataOnMemoryListContainer<DataInstance>(dataUpdate.getAttributes());
  DataSet<DataOnMemory<DataInstance>> unionData=null;
  try {
    unionData=dataUpdate.getBatchedDataSet(this.batchSize).union(env.fromCollection(Arrays.asList(emtpyBatch),TypeExtractor.getForClass((Class<DataOnMemory<DataInstance>>)Class.forName("String_Node_Str"))));
  }
 catch (  Exception ex) {
    throw new RuntimeException(ex.getMessage());
  }
  DataSet<CompoundVector> newparamSet=unionData.map(new ParallelVBMap()).withParameters(config).withBroadcastSet(loop,"String_Node_Str" + this.dag.getName()).reduce(new ParallelVBReduce());
  DataSet<CompoundVector> finlparamSet=loop.closeWith(newparamSet);
  try {
    parameterPrior.sum(finlparamSet.collect().get(0));
  }
 catch (  Exception ex) {
    throw new RuntimeException(ex.getMessage());
  }
  this.svb.updateNaturalParameterPrior(parameterPrior);
  this.globalELBO=((ConvergenceELBO)loop.getAggregators().getConvergenceCriterion()).getELBO();
}