Program: 83382
Project: 83382
Buggy source:
public void process(CompilationUnitDeclaration cud,int index){
{
    this.parser.getMethodBodies(cud);
    if (cud.scope != null) {
      cud.scope.faultInTypes();
    }
    if (cud.scope != null) {
      cud.scope.verifyMethods(lookupEnvironment.methodVerifier());
    }
    cud.resolve();
    cud.analyseCode();
    if (doGenerateBytes) {
      cud.generateCode();
    }
    if (options.produceReferenceInfo && cud.scope != null) {
      cud.scope.storeDependencyInfo();
    }
    cud.compilationResult.totalUnitsKnown=totalUnits;
  }
  ICompilationUnit cu=cud.compilationResult.compilationUnit;
  String loc=String.valueOf(cu.getFileName());
  TreeLogger logger=threadLogger.branch(TreeLogger.SPAM,"String_Node_Str" + loc,null);
  String[] typeNames;
  try {
    typeNames=doFindAdditionalTypesUsingJsni(logger,cud);
  }
 catch (  UnableToCompleteException e) {
    problemReporter.abortDueToInternalError("String_Node_Str",cud);
    return;
  }
  for (int i=0; i < typeNames.length; i++) {
    String typeName=typeNames[i];
    final String msg="String_Node_Str" + typeName + "String_Node_Str";
    logger.log(TreeLogger.SPAM,msg,null);
    char[][] chars=CharOperation.splitOn('.',typeName.toCharArray());
    lookupEnvironment.getType(chars);
  }
  try {
    typeNames=doFindAdditionalTypesUsingRebinds(logger,cud);
  }
 catch (  UnableToCompleteException e) {
    problemReporter.abortDueToInternalError("String_Node_Str",cud);
    return;
  }
  for (int i=0; i < typeNames.length; i++) {
    String typeName=typeNames[i];
    final String msg="String_Node_Str" + typeName + "String_Node_Str";
    logger.log(TreeLogger.SPAM,msg,null);
    ReferenceBinding type=resolvePossiblyNestedType(typeName);
    if (type == null) {
      problemReporter.abortDueToInternalError("String_Node_Str" + typeName + "String_Node_Str");
      return;
    }
    if (!type.isClass()) {
      problemReporter.abortDueToInternalError("String_Node_Str" + typeName + "String_Node_Str");
      return;
    }
    if (type.isAbstract()) {
      problemReporter.abortDueToInternalError("String_Node_Str" + typeName + "String_Node_Str");
      return;
    }
    if (type.isNestedType() && !type.isStatic()) {
      problemReporter.abortDueToInternalError("String_Node_Str" + typeName + "String_Node_Str");
      return;
    }
    if (type.isLocalType()) {
      problemReporter.abortDueToInternalError("String_Node_Str" + typeName + "String_Node_Str");
      return;
    }
    MethodBinding noArgCtor=type.getExactMethod("String_Node_Str".toCharArray(),TypeBinding.NoParameters,cud.scope);
    if (noArgCtor == null) {
      problemReporter.abortDueToInternalError("String_Node_Str" + typeName + "String_Node_Str");
      return;
    }
  }
  if (cuds != null) {
    cuds.add(cud);
  }
}

Fixed version (ground truth):
public void process(CompilationUnitDeclaration cud,int index){
{
    this.parser.getMethodBodies(cud);
    if (cud.scope != null) {
      cud.scope.faultInTypes();
    }
    if (cud.scope != null) {
      cud.scope.verifyMethods(lookupEnvironment.methodVerifier());
    }
    cud.resolve();
    cud.analyseCode();
    if (doGenerateBytes) {
      cud.generateCode();
    }
    if (options.produceReferenceInfo && cud.scope != null) {
      cud.scope.storeDependencyInfo();
    }
    cud.compilationResult.totalUnitsKnown=totalUnits;
  }
  ICompilationUnit cu=cud.compilationResult.compilationUnit;
  String loc=String.valueOf(cu.getFileName());
  TreeLogger logger=threadLogger.branch(TreeLogger.SPAM,"String_Node_Str" + loc,null);
  String[] typeNames=doFindAdditionalTypesUsingJsni(logger,cud);
  for (int i=0; i < typeNames.length; i++) {
    String typeName=typeNames[i];
    final String msg="String_Node_Str" + typeName + "String_Node_Str";
    logger.log(TreeLogger.SPAM,msg,null);
    char[][] chars=CharOperation.splitOn('.',typeName.toCharArray());
    lookupEnvironment.getType(chars);
  }
  typeNames=doFindAdditionalTypesUsingRebinds(logger,cud);
  for (int i=0; i < typeNames.length; i++) {
    String typeName=typeNames[i];
    final String msg="String_Node_Str" + typeName + "String_Node_Str";
    logger.log(TreeLogger.SPAM,msg,null);
    ReferenceBinding type=resolvePossiblyNestedType(typeName);
  }
  if (cuds != null) {
    cuds.add(cud);
  }
}