Program: 166834
Project: 166834
Buggy source:
private void writeMappedStringMethod(T methodInvocation,String methodName,ArrayList<Expression> args,IMethodBinding methodBinding){
  match(methodName);
  if (isStatic(methodBinding)) {
switch (methodName) {
default :
      throw sourceNotSupported("String_Node_Str" + methodName + "String_Node_Str");
  }
}
 else {
switch (methodName) {
case "String_Node_Str":
    verifyArgCount(args,1);
  writeMappedMethod("String_Node_Str",args.get(0));
break;
case "String_Node_Str":
verifyArgCount(args,1);
writeMappedMethod("String_Node_Str",args.get(0));
break;
case "String_Node_Str":
verifyArgCount(args,1);
writeMappedMethod("String_Node_Str",args.get(0),nativeReference("String_Node_Str","String_Node_Str"));
break;
case "String_Node_Str":
verifyArgCount(args,1,2);
if (args.size() == 1) writeMappedMethod("String_Node_Str",args.get(0));
 else writeMappedMethod("String_Node_Str",args.get(0),args.get(1));
break;
case "String_Node_Str":
verifyArgCount(args,1,2);
if (args.size() == 1) writeMappedMethod("String_Node_Str",args.get(0));
 else writeMappedMethod("String_Node_Str",args.get(0),args.get(1));
break;
case "String_Node_Str":
verifyArgCount(args,0);
write("String_Node_Str");
break;
case "String_Node_Str":
verifyArgCount(args,0);
write("String_Node_Str");
break;
case "String_Node_Str":
verifyArgCount(args,2);
writeMappedMethod("String_Node_Str",args.get(0),args.get(1));
break;
case "String_Node_Str":
verifyArgCount(args,1);
writeMappedMethod("String_Node_Str",args.get(0),nativeReference("String_Node_Str","String_Node_Str"));
break;
case "String_Node_Str":
verifyArgCount(args,1,2);
if (args.size() == 1) writeMappedMethod("String_Node_Str",args.get(0));
 else {
Expression arg0=args.get(0);
Expression arg1=args.get(1);
write("String_Node_Str");
write("String_Node_Str");
setPositionToStartOfNode(arg0);
writeNode(arg0);
write("String_Node_Str");
setPositionToStartOfNode(arg1);
writeNode(arg1);
write("String_Node_Str");
setPositionToStartOfNode(arg0);
writeNode(arg0);
write("String_Node_Str");
}
break;
case "String_Node_Str":
verifyArgCount(args,0);
writeMappedMethod("String_Node_Str");
break;
case "String_Node_Str":
verifyArgCount(args,1);
writeMappedMethod("String_Node_Str");
break;
case "String_Node_Str":
verifyArgCount(args,0);
writeMappedMethod("String_Node_Str");
break;
default :
throw sourceNotSupported("String_Node_Str" + methodName + "String_Node_Str");
}
}
setPositionToEndOfNode(methodInvocation);
}

Fixed version (ground truth):
private void writeMappedStringMethod(T methodInvocation,String methodName,ArrayList<Expression> args,IMethodBinding methodBinding){
  match(methodName);
  if (isStatic(methodBinding)) {
switch (methodName) {
default :
      throw sourceNotSupported("String_Node_Str" + methodName + "String_Node_Str");
  }
}
 else {
switch (methodName) {
case "String_Node_Str":
    verifyArgCount(args,1);
  writeMappedMethod("String_Node_Str",args.get(0));
break;
case "String_Node_Str":
verifyArgCount(args,1);
writeMappedMethod("String_Node_Str",args.get(0));
break;
case "String_Node_Str":
verifyArgCount(args,1);
writeMappedMethod("String_Node_Str",args.get(0),nativeReference("String_Node_Str","String_Node_Str"));
break;
case "String_Node_Str":
verifyArgCount(args,1,2);
if (args.size() == 1) writeMappedMethod("String_Node_Str",args.get(0));
 else writeMappedMethod("String_Node_Str",args.get(0),args.get(1));
break;
case "String_Node_Str":
verifyArgCount(args,1,2);
if (args.size() == 1) writeMappedMethod("String_Node_Str",args.get(0));
 else writeMappedMethod("String_Node_Str",args.get(0),args.get(1));
break;
case "String_Node_Str":
verifyArgCount(args,0);
write("String_Node_Str");
break;
case "String_Node_Str":
verifyArgCount(args,0);
write("String_Node_Str");
break;
case "String_Node_Str":
verifyArgCount(args,2);
writeMappedMethod("String_Node_Str",args.get(0),args.get(1));
break;
case "String_Node_Str":
verifyArgCount(args,1);
writeMappedMethod("String_Node_Str",args.get(0),nativeReference("String_Node_Str","String_Node_Str"));
break;
case "String_Node_Str":
verifyArgCount(args,1,2);
if (args.size() == 1) writeMappedMethod("String_Node_Str",args.get(0));
 else {
Expression arg0=args.get(0);
Expression arg1=args.get(1);
write("String_Node_Str");
write("String_Node_Str");
setPositionToStartOfNode(arg0);
writeNode(arg0);
write("String_Node_Str");
setPositionToStartOfNode(arg1);
writeNode(arg1);
write("String_Node_Str");
setPositionToStartOfNode(arg0);
writeNode(arg0);
write("String_Node_Str");
}
break;
case "String_Node_Str":
verifyArgCount(args,1,1);
writeMappedMethod("String_Node_Str");
break;
case "String_Node_Str":
verifyArgCount(args,0);
writeMappedMethod("String_Node_Str");
break;
case "String_Node_Str":
verifyArgCount(args,0);
writeMappedMethod("String_Node_Str");
break;
default :
throw sourceNotSupported("String_Node_Str" + methodName + "String_Node_Str");
}
}
setPositionToEndOfNode(methodInvocation);
}