Program: 87991
Project: 87991
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public Plan getPlan(final String... args){
  int noSubtasks=(args.length > 0 ? Integer.parseInt(args[0]) : 1);
  String ordersPath=(args.length > 1 ? args[1] : "String_Node_Str");
  String lineitemsPath=(args.length > 2 ? args[2] : "String_Node_Str");
  String output=(args.length > 3 ? args[3] : "String_Node_Str");
  FileDataSource orders=new FileDataSource(NewTupleInFormat.class,ordersPath,"String_Node_Str");
  orders.setParameter(NewTupleInFormat.RECORD_DELIMITER,"String_Node_Str");
  orders.getCompilerHints().setAvgNumValuesPerKey(1);
  FileDataSource lineitems=new FileDataSource(NewTupleInFormat.class,lineitemsPath,"String_Node_Str");
  lineitems.setParameter(NewTupleInFormat.RECORD_DELIMITER,"String_Node_Str");
  lineitems.getCompilerHints().setAvgNumValuesPerKey(4);
  MapContract filterO=new MapContract(FilterO.class,orders,"String_Node_Str");
  filterO.setParameter("String_Node_Str",1993);
  filterO.setParameter("String_Node_Str","String_Node_Str");
  filterO.getCompilerHints().setAvgBytesPerRecord(16);
  filterO.getCompilerHints().setAvgRecordsEmittedPerStubCall(0.05f);
  filterO.getCompilerHints().setAvgNumValuesPerKey(1);
  MapContract projectLi=new MapContract(ProjectLi.class,lineitems,"String_Node_Str");
  projectLi.getCompilerHints().setAvgBytesPerRecord(20);
  projectLi.getCompilerHints().setAvgRecordsEmittedPerStubCall(1.0f);
  projectLi.getCompilerHints().setAvgNumValuesPerKey(4);
  MatchContract joinLiO=new MatchContract(JoinLiO.class,PactLong.class,0,0,filterO,projectLi,"String_Node_Str");
  joinLiO.getCompilerHints().setAvgBytesPerRecord(24);
  joinLiO.getCompilerHints().setAvgNumValuesPerKey(4);
  @SuppressWarnings("String_Node_Str") ReduceContract aggLiO=new ReduceContract(AggLiO.class,new Class[]{PactLong.class,PactString.class},new int[]{0,1},joinLiO,"String_Node_Str");
  aggLiO.getCompilerHints().setAvgBytesPerRecord(30);
  aggLiO.getCompilerHints().setAvgRecordsEmittedPerStubCall(1.0f);
  aggLiO.getCompilerHints().setAvgNumValuesPerKey(1);
  FileDataSink result=new FileDataSink(RecordOutputFormat.class,output,aggLiO,"String_Node_Str");
  result.getParameters().setString(RecordOutputFormat.RECORD_DELIMITER_PARAMETER,"String_Node_Str");
  result.getParameters().setString(RecordOutputFormat.FIELD_DELIMITER_PARAMETER,"String_Node_Str");
  result.getParameters().setInteger(RecordOutputFormat.NUM_FIELDS_PARAMETER,3);
  result.getParameters().setClass(RecordOutputFormat.FIELD_TYPE_PARAMETER_PREFIX + 0,PactLong.class);
  result.getParameters().setClass(RecordOutputFormat.FIELD_TYPE_PARAMETER_PREFIX + 1,PactString.class);
  result.getParameters().setClass(RecordOutputFormat.FIELD_TYPE_PARAMETER_PREFIX + 2,PactDouble.class);
  Plan plan=new Plan(result,"String_Node_Str");
  plan.setDefaultParallelism(noSubtasks);
  return plan;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public Plan getPlan(final String... args){
  int noSubtasks=(args.length > 0 ? Integer.parseInt(args[0]) : 1);
  String ordersPath=(args.length > 1 ? args[1] : "String_Node_Str");
  String lineitemsPath=(args.length > 2 ? args[2] : "String_Node_Str");
  String output=(args.length > 3 ? args[3] : "String_Node_Str");
  FileDataSource orders=new FileDataSource(NewTupleInFormat.class,ordersPath,"String_Node_Str");
  orders.setParameter(NewTupleInFormat.RECORD_DELIMITER,"String_Node_Str");
  orders.getCompilerHints().setAvgNumValuesPerKey(1);
  FileDataSource lineitems=new FileDataSource(NewTupleInFormat.class,lineitemsPath,"String_Node_Str");
  lineitems.setParameter(NewTupleInFormat.RECORD_DELIMITER,"String_Node_Str");
  lineitems.getCompilerHints().setAvgNumValuesPerKey(4);
  MapContract filterO=new MapContract(FilterO.class,orders,"String_Node_Str");
  filterO.setParameter(YEAR_FILTER,1993);
  filterO.setParameter(PRIO_FILTER,"String_Node_Str");
  filterO.getCompilerHints().setAvgBytesPerRecord(16);
  filterO.getCompilerHints().setAvgRecordsEmittedPerStubCall(0.05f);
  filterO.getCompilerHints().setAvgNumValuesPerKey(1);
  MapContract projectLi=new MapContract(ProjectLi.class,lineitems,"String_Node_Str");
  projectLi.getCompilerHints().setAvgBytesPerRecord(20);
  projectLi.getCompilerHints().setAvgRecordsEmittedPerStubCall(1.0f);
  projectLi.getCompilerHints().setAvgNumValuesPerKey(4);
  MatchContract joinLiO=new MatchContract(JoinLiO.class,PactLong.class,0,0,filterO,projectLi,"String_Node_Str");
  joinLiO.getCompilerHints().setAvgBytesPerRecord(24);
  joinLiO.getCompilerHints().setAvgNumValuesPerKey(4);
  @SuppressWarnings("String_Node_Str") ReduceContract aggLiO=new ReduceContract(AggLiO.class,new Class[]{PactLong.class,PactString.class},new int[]{0,1},joinLiO,"String_Node_Str");
  aggLiO.getCompilerHints().setAvgBytesPerRecord(30);
  aggLiO.getCompilerHints().setAvgRecordsEmittedPerStubCall(1.0f);
  aggLiO.getCompilerHints().setAvgNumValuesPerKey(1);
  FileDataSink result=new FileDataSink(RecordOutputFormat.class,output,aggLiO,"String_Node_Str");
  result.getParameters().setString(RecordOutputFormat.RECORD_DELIMITER_PARAMETER,"String_Node_Str");
  result.getParameters().setString(RecordOutputFormat.FIELD_DELIMITER_PARAMETER,"String_Node_Str");
  result.getParameters().setInteger(RecordOutputFormat.NUM_FIELDS_PARAMETER,3);
  result.getParameters().setClass(RecordOutputFormat.FIELD_TYPE_PARAMETER_PREFIX + 0,PactLong.class);
  result.getParameters().setClass(RecordOutputFormat.FIELD_TYPE_PARAMETER_PREFIX + 1,PactString.class);
  result.getParameters().setClass(RecordOutputFormat.FIELD_TYPE_PARAMETER_PREFIX + 2,PactDouble.class);
  Plan plan=new Plan(result,"String_Node_Str");
  plan.setDefaultParallelism(noSubtasks);
  return plan;
}