Program: 75135
Project: 75135
Buggy source:
private MethodDeclaration _createAssignMethod(Class currentClass,AST ast,String fieldName,Type fieldType,int indices,boolean isStatic,ClassLoader loader){
  String methodName=_getAssignMethodName(fieldName,indices);
  if (_isMethodDuplicated(currentClass,methodName,fieldType,indices,isStatic,loader))   throw new ASTDuplicatedMethodException(currentClass.getName(),methodName);
  MethodDeclaration method=ast.newMethodDeclaration();
  for (int i=0; i < indices; i++)   try {
    fieldType=fieldType.removeOneDimension();
  }
 catch (  ClassNotFoundException e) {
    throw new ASTClassNotFoundException(fieldType);
  }
  SimpleName name=ast.newSimpleName(_getAssignMethodName(fieldName,indices));
  method.setName(name);
  org.eclipse.jdt.core.dom.Type type=_createType(ast,fieldType.getName());
  method.setReturnType(type);
  if (isStatic) {
    SingleVariableDeclaration checkpoint=ast.newSingleVariableDeclaration();
    checkpoint.setType(ast.newSimpleType(_createName(ast,Checkpoint.class.getName())));
    checkpoint.setName(ast.newSimpleName(CHECKPOINT_NAME));
    method.parameters().add(checkpoint);
  }
  for (int i=0; i < indices; i++) {
    SingleVariableDeclaration index=ast.newSingleVariableDeclaration();
    index.setType(ast.newPrimitiveType(PrimitiveType.INT));
    index.setName(ast.newSimpleName("String_Node_Str" + i));
    method.parameters().add(index);
  }
  SingleVariableDeclaration argument=ast.newSingleVariableDeclaration();
  argument.setType((org.eclipse.jdt.core.dom.Type)ASTNode.copySubtree(ast,type));
  argument.setName(ast.newSimpleName("String_Node_Str"));
  method.parameters().add(argument);
  Block body=_createAssignmentBlock(ast,fieldName,indices);
  method.setBody(body);
  int modifiers=Modifier.PRIVATE;
  if (isStatic)   modifiers|=Modifier.STATIC;
  method.setModifiers(modifiers);
  return method;
}

Fixed version (ground truth):
private MethodDeclaration _createAssignMethod(Class currentClass,AST ast,String fieldName,Type fieldType,int indices,boolean isStatic,ClassLoader loader){
  String methodName=_getAssignMethodName(fieldName);
  if (_isMethodDuplicated(currentClass,methodName,fieldType,indices,isStatic,loader))   throw new ASTDuplicatedMethodException(currentClass.getName(),methodName);
  MethodDeclaration method=ast.newMethodDeclaration();
  for (int i=0; i < indices; i++)   try {
    fieldType=fieldType.removeOneDimension();
  }
 catch (  ClassNotFoundException e) {
    throw new ASTClassNotFoundException(fieldType);
  }
  SimpleName name=ast.newSimpleName(methodName);
  method.setName(name);
  org.eclipse.jdt.core.dom.Type type=_createType(ast,fieldType.getName());
  method.setReturnType(type);
  if (isStatic) {
    SingleVariableDeclaration checkpoint=ast.newSingleVariableDeclaration();
    checkpoint.setType(ast.newSimpleType(_createName(ast,Checkpoint.class.getName())));
    checkpoint.setName(ast.newSimpleName(CHECKPOINT_NAME));
    method.parameters().add(checkpoint);
  }
  for (int i=0; i < indices; i++) {
    SingleVariableDeclaration index=ast.newSingleVariableDeclaration();
    index.setType(ast.newPrimitiveType(PrimitiveType.INT));
    index.setName(ast.newSimpleName("String_Node_Str" + i));
    method.parameters().add(index);
  }
  SingleVariableDeclaration argument=ast.newSingleVariableDeclaration();
  argument.setType((org.eclipse.jdt.core.dom.Type)ASTNode.copySubtree(ast,type));
  argument.setName(ast.newSimpleName("String_Node_Str"));
  method.parameters().add(argument);
  Block body=_createAssignmentBlock(ast,fieldName,indices);
  method.setBody(body);
  int modifiers=Modifier.PRIVATE | Modifier.FINAL;
  if (isStatic)   modifiers|=Modifier.STATIC;
  method.setModifiers(modifiers);
  return method;
}