Program: 56093
Project: 56093
Buggy source:
/** 
 * @param matchNode
 * @return
 * @throws CompilerException
 */
private JobTaskVertex generateMatchVertex(OptimizerNode matchNode) throws CompilerException {
  JobTaskVertex matchVertex=new JobTaskVertex(matchNode.getPactContract().getName(),this.jobGraph);
  TaskConfig matchConfig=new TaskConfig(matchVertex.getConfiguration());
  matchConfig.setStubClass(matchNode.getPactContract().getStubClass());
switch (matchNode.getLocalStrategy()) {
case SORT_BOTH_MERGE:
    matchVertex.setTaskClass(MatchTask.class);
  matchConfig.setLocalStrategy(LocalStrategy.SORT_BOTH_MERGE);
break;
case SORT_FIRST_MERGE:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.SORT_FIRST_MERGE);
break;
case SORT_SECOND_MERGE:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.SORT_SECOND_MERGE);
break;
case MERGE:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.MERGE);
break;
case HYBRIDHASH_FIRST:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.HYBRIDHASH_FIRST);
break;
case HYBRIDHASH_SECOND:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.HYBRIDHASH_SECOND);
break;
case MMHASH_FIRST:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.MMHASH_FIRST);
break;
case MMHASH_SECOND:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.MMHASH_SECOND);
break;
case SORT_SELF_NESTEDLOOP:
matchVertex.setTaskClass(SelfMatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.SORT_SELF_NESTEDLOOP);
case SELF_NESTEDLOOP:
matchVertex.setTaskClass(SelfMatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.SELF_NESTEDLOOP);
default :
throw new CompilerException("String_Node_Str" + matchNode.getName() + "String_Node_Str"+ matchNode.getLocalStrategy());
}
assignMemory(matchConfig,matchNode.getMemoryPerTask());
matchConfig.setStubParameters(matchNode.getPactContract().getStubParameters());
return matchVertex;
}

Fixed version (ground truth):
/** 
 * @param matchNode
 * @return
 * @throws CompilerException
 */
private JobTaskVertex generateMatchVertex(OptimizerNode matchNode) throws CompilerException {
  JobTaskVertex matchVertex=new JobTaskVertex(matchNode.getPactContract().getName(),this.jobGraph);
  TaskConfig matchConfig=new TaskConfig(matchVertex.getConfiguration());
  matchConfig.setStubClass(matchNode.getPactContract().getStubClass());
switch (matchNode.getLocalStrategy()) {
case SORT_BOTH_MERGE:
    matchVertex.setTaskClass(MatchTask.class);
  matchConfig.setLocalStrategy(LocalStrategy.SORT_BOTH_MERGE);
break;
case SORT_FIRST_MERGE:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.SORT_FIRST_MERGE);
break;
case SORT_SECOND_MERGE:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.SORT_SECOND_MERGE);
break;
case MERGE:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.MERGE);
break;
case HYBRIDHASH_FIRST:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.HYBRIDHASH_FIRST);
break;
case HYBRIDHASH_SECOND:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.HYBRIDHASH_SECOND);
break;
case MMHASH_FIRST:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.MMHASH_FIRST);
break;
case MMHASH_SECOND:
matchVertex.setTaskClass(MatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.MMHASH_SECOND);
break;
case SORT_SELF_NESTEDLOOP:
matchVertex.setTaskClass(SelfMatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.SORT_SELF_NESTEDLOOP);
break;
case SELF_NESTEDLOOP:
matchVertex.setTaskClass(SelfMatchTask.class);
matchConfig.setLocalStrategy(LocalStrategy.SELF_NESTEDLOOP);
break;
default :
throw new CompilerException("String_Node_Str" + matchNode.getName() + "String_Node_Str"+ matchNode.getLocalStrategy());
}
assignMemory(matchConfig,matchNode.getMemoryPerTask());
matchConfig.setStubParameters(matchNode.getPactContract().getStubParameters());
return matchVertex;
}