Program: 56216
Project: 56216
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public Plan getPlan(final String... args){
  int degreeOfParallelism=1;
  String ordersPath="String_Node_Str";
  String lineitemsPath="String_Node_Str";
  String resultPath="String_Node_Str";
  if (args.length != 4) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  degreeOfParallelism=Integer.parseInt(args[0]);
  ordersPath=args[1];
  lineitemsPath=args[2];
  resultPath=args[3];
  DataSourceContract<PactInteger,Tuple> orders=new DataSourceContract<PactInteger,Tuple>(IntTupleDataInFormat.class,ordersPath,"String_Node_Str");
  orders.setFormatParameter("String_Node_Str","String_Node_Str");
  orders.setDegreeOfParallelism(degreeOfParallelism);
  orders.setOutputContract(UniqueKey.class);
  orders.getCompilerHints().setAvgNumValuesPerKey(1);
  DataSourceContract<PactInteger,Tuple> lineitems=new DataSourceContract<PactInteger,Tuple>(IntTupleDataInFormat.class,lineitemsPath,"String_Node_Str");
  lineitems.setFormatParameter("String_Node_Str","String_Node_Str");
  lineitems.setDegreeOfParallelism(degreeOfParallelism);
  lineitems.getCompilerHints().setAvgNumValuesPerKey(4);
  MapContract<PactInteger,Tuple,PactInteger,Tuple> filterO=new MapContract<PactInteger,Tuple,PactInteger,Tuple>(FilterO.class,"String_Node_Str");
  filterO.setDegreeOfParallelism(degreeOfParallelism);
  filterO.getCompilerHints().setAvgBytesPerRecord(32);
  filterO.getCompilerHints().setSelectivity(0.05f);
  filterO.getCompilerHints().setAvgNumValuesPerKey(1);
  MapContract<PactInteger,Tuple,PactInteger,Tuple> projectLi=new MapContract<PactInteger,Tuple,PactInteger,Tuple>(ProjectLi.class,"String_Node_Str");
  projectLi.setDegreeOfParallelism(degreeOfParallelism);
  projectLi.getCompilerHints().setAvgBytesPerRecord(48);
  projectLi.getCompilerHints().setSelectivity(1.0f);
  projectLi.getCompilerHints().setAvgNumValuesPerKey(4);
  MatchContract<PactInteger,Tuple,Tuple,N_IntStringPair,Tuple> joinLiO=new MatchContract<PactInteger,Tuple,Tuple,N_IntStringPair,Tuple>(JoinLiO.class,"String_Node_Str");
  joinLiO.setDegreeOfParallelism(degreeOfParallelism);
  joinLiO.getCompilerHints().setSelectivity(0.05f);
  joinLiO.getCompilerHints().setAvgBytesPerRecord(64);
  joinLiO.getCompilerHints().setAvgNumValuesPerKey(4);
  ReduceContract<N_IntStringPair,Tuple,PactInteger,Tuple> aggLiO=new ReduceContract<N_IntStringPair,Tuple,PactInteger,Tuple>(AggLiO.class,"String_Node_Str");
  aggLiO.setDegreeOfParallelism(degreeOfParallelism);
  aggLiO.getCompilerHints().setAvgBytesPerRecord(64);
  aggLiO.getCompilerHints().setSelectivity(0.25f);
  aggLiO.getCompilerHints().setAvgNumValuesPerKey(1);
  DataSinkContract<PactString,Tuple> result=new DataSinkContract<PactString,Tuple>(StringTupleDataOutFormat.class,resultPath,"String_Node_Str");
  result.setDegreeOfParallelism(degreeOfParallelism);
  result.setInput(aggLiO);
  aggLiO.setInput(joinLiO);
  joinLiO.setFirstInput(filterO);
  filterO.setInput(orders);
  joinLiO.setSecondInput(projectLi);
  projectLi.setInput(lineitems);
  return new Plan(result,"String_Node_Str");
}

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");
  DataSourceContract<PactInteger,Tuple> orders=new DataSourceContract<PactInteger,Tuple>(IntTupleDataInFormat.class,ordersPath,"String_Node_Str");
  orders.setFormatParameter("String_Node_Str","String_Node_Str");
  orders.setDegreeOfParallelism(noSubtasks);
  orders.setOutputContract(UniqueKey.class);
  orders.getCompilerHints().setAvgNumValuesPerKey(1);
  DataSourceContract<PactInteger,Tuple> lineitems=new DataSourceContract<PactInteger,Tuple>(IntTupleDataInFormat.class,lineitemsPath,"String_Node_Str");
  lineitems.setFormatParameter("String_Node_Str","String_Node_Str");
  lineitems.setDegreeOfParallelism(noSubtasks);
  lineitems.getCompilerHints().setAvgNumValuesPerKey(4);
  MapContract<PactInteger,Tuple,PactInteger,Tuple> filterO=new MapContract<PactInteger,Tuple,PactInteger,Tuple>(FilterO.class,"String_Node_Str");
  filterO.setDegreeOfParallelism(noSubtasks);
  filterO.getCompilerHints().setAvgBytesPerRecord(32);
  filterO.getCompilerHints().setSelectivity(0.05f);
  filterO.getCompilerHints().setAvgNumValuesPerKey(1);
  MapContract<PactInteger,Tuple,PactInteger,Tuple> projectLi=new MapContract<PactInteger,Tuple,PactInteger,Tuple>(ProjectLi.class,"String_Node_Str");
  projectLi.setDegreeOfParallelism(noSubtasks);
  projectLi.getCompilerHints().setAvgBytesPerRecord(48);
  projectLi.getCompilerHints().setSelectivity(1.0f);
  projectLi.getCompilerHints().setAvgNumValuesPerKey(4);
  MatchContract<PactInteger,Tuple,Tuple,N_IntStringPair,Tuple> joinLiO=new MatchContract<PactInteger,Tuple,Tuple,N_IntStringPair,Tuple>(JoinLiO.class,"String_Node_Str");
  joinLiO.setDegreeOfParallelism(noSubtasks);
  joinLiO.getCompilerHints().setSelectivity(0.05f);
  joinLiO.getCompilerHints().setAvgBytesPerRecord(64);
  joinLiO.getCompilerHints().setAvgNumValuesPerKey(4);
  ReduceContract<N_IntStringPair,Tuple,PactInteger,Tuple> aggLiO=new ReduceContract<N_IntStringPair,Tuple,PactInteger,Tuple>(AggLiO.class,"String_Node_Str");
  aggLiO.setDegreeOfParallelism(noSubtasks);
  aggLiO.getCompilerHints().setAvgBytesPerRecord(64);
  aggLiO.getCompilerHints().setSelectivity(0.25f);
  aggLiO.getCompilerHints().setAvgNumValuesPerKey(1);
  DataSinkContract<PactString,Tuple> result=new DataSinkContract<PactString,Tuple>(StringTupleDataOutFormat.class,output,"String_Node_Str");
  result.setDegreeOfParallelism(noSubtasks);
  result.setInput(aggLiO);
  aggLiO.setInput(joinLiO);
  joinLiO.setFirstInput(filterO);
  filterO.setInput(orders);
  joinLiO.setSecondInput(projectLi);
  projectLi.setInput(lineitems);
  return new Plan(result,"String_Node_Str");
}