Program: 12196
Project: 12196
Buggy source:
private void modifyMethodInvocationsInSubclass(List<Expression> oldMethodInvocations,List<Expression> newMethodInvocations,AST subclassAST,ASTRewrite subclassRewriter,Set<MethodDeclaration> accessedMethods,Set<IMethodBinding> superAccessedMethods){
  int j=0;
  for (  Expression expression : newMethodInvocations) {
    if (expression instanceof MethodInvocation) {
      MethodInvocation newMethodInvocation=(MethodInvocation)expression;
      MethodInvocation oldMethodInvocation=(MethodInvocation)oldMethodInvocations.get(j);
      for (      MethodDeclaration methodDeclaration : accessedMethods) {
        if (oldMethodInvocation.resolveMethodBinding().isEqualTo(methodDeclaration.resolveBinding())) {
          String invokerName=sourceTypeDeclaration.getName().getIdentifier();
          invokerName=invokerName.substring(0,1).toLowerCase() + invokerName.substring(1,invokerName.length());
          subclassRewriter.set(newMethodInvocation,MethodInvocation.EXPRESSION_PROPERTY,subclassAST.newSimpleName(invokerName),null);
          break;
        }
      }
      for (      IMethodBinding superMethodBinding : superAccessedMethods) {
        if (superMethodBinding.isEqualTo(oldMethodInvocation.resolveMethodBinding())) {
          String invokerName=sourceTypeDeclaration.getName().getIdentifier();
          invokerName=invokerName.substring(0,1).toLowerCase() + invokerName.substring(1,invokerName.length());
          subclassRewriter.set(newMethodInvocation,MethodInvocation.EXPRESSION_PROPERTY,subclassAST.newSimpleName(invokerName),null);
          break;
        }
      }
    }
    j++;
  }
}

Fixed version (ground truth):
private void modifyMethodInvocationsInSubclass(List<Expression> oldMethodInvocations,List<Expression> newMethodInvocations,AST subclassAST,ASTRewrite subclassRewriter,Set<MethodDeclaration> accessedMethods,Set<IMethodBinding> superAccessedMethods){
  int j=0;
  for (  Expression expression : newMethodInvocations) {
    if (expression instanceof MethodInvocation) {
      MethodInvocation newMethodInvocation=(MethodInvocation)expression;
      MethodInvocation oldMethodInvocation=(MethodInvocation)oldMethodInvocations.get(j);
      for (      MethodDeclaration methodDeclaration : accessedMethods) {
        if (oldMethodInvocation.resolveMethodBinding().isEqualTo(methodDeclaration.resolveBinding())) {
          String invokerName=sourceTypeDeclaration.getName().getIdentifier();
          invokerName=invokerName.substring(0,1).toLowerCase() + invokerName.substring(1,invokerName.length());
          subclassRewriter.set(newMethodInvocation,MethodInvocation.EXPRESSION_PROPERTY,subclassAST.newSimpleName(invokerName),null);
          break;
        }
      }
      for (      IMethodBinding superMethodBinding : superAccessedMethods) {
        if (superMethodBinding.isEqualTo(oldMethodInvocation.resolveMethodBinding())) {
          if (oldMethodInvocation.getExpression() == null || (oldMethodInvocation.getExpression() != null && oldMethodInvocation.getExpression() instanceof ThisExpression)) {
            String invokerName=sourceTypeDeclaration.getName().getIdentifier();
            invokerName=invokerName.substring(0,1).toLowerCase() + invokerName.substring(1,invokerName.length());
            subclassRewriter.set(newMethodInvocation,MethodInvocation.EXPRESSION_PROPERTY,subclassAST.newSimpleName(invokerName),null);
            break;
          }
        }
      }
    }
    j++;
  }
}