Program: 83153
Project: 83153
Buggy source:
public void validateRemoteServiceAsync(TreeLogger logger,JClassType remoteService) throws UnableToCompleteException {
  logger=logger.branch(TreeLogger.DEBUG,"String_Node_Str" + remoteService.getQualifiedSourceName() + "String_Node_Str"+ remoteService.getQualifiedSourceName()+ "String_Node_Str",null);
  JClassType remoteServiceAsync=typeOracle.findType(remoteService.getQualifiedSourceName() + "String_Node_Str");
  boolean failed=false;
  if (remoteServiceAsync == null) {
    logger.branch(TreeLogger.ERROR,"String_Node_Str" + remoteService.getQualifiedSourceName(),null);
    failed=true;
  }
 else {
    JMethod[] syncMethods=remoteService.getOverridableMethods();
    JMethod[] asyncMethods=remoteServiceAsync.getOverridableMethods();
    if (syncMethods.length != asyncMethods.length) {
      logger.branch(TreeLogger.ERROR,"String_Node_Str" + remoteService.getQualifiedSourceName() + "String_Node_Str"+ (asyncMethods.length > syncMethods.length ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str",null);
      failed=true;
    }
 else {
      for (int i=0; i < syncMethods.length; ++i) {
        JMethod method=syncMethods[i];
        JMethod asyncMethod=remoteServiceAsync.findMethod(method.getName(),getAsyncParamTypes(method));
        if (asyncMethod == null) {
          logger.branch(TreeLogger.ERROR,"String_Node_Str" + method.getReadableDeclaration() + "String_Node_Str",null);
          failed=true;
        }
 else         if (asyncMethod.getReturnType() != JPrimitiveType.VOID) {
          logger.branch(TreeLogger.ERROR,"String_Node_Str" + method.getReadableDeclaration() + "String_Node_Str",null);
          failed=true;
        }
      }
    }
  }
  if (failed) {
    logValidAsyncInterfaceDeclaration(logger,remoteService);
    throw new UnableToCompleteException();
  }
}

Fixed version (ground truth):
/** 
 * Checks that for there is an asynchronous  {@link com.google.gwt.user.client.rpc.RemoteService RemoteService}interface and that it has an asynchronous version of every synchronous method.
 * @throws UnableToCompleteException if the asynchronous{@link com.google.gwt.user.client.rpc.RemoteService RemoteService}was not found, or if it does not have an asynchronous method version of every synchronous one
 */
public void validateRemoteServiceAsync(TreeLogger logger,JClassType remoteService) throws UnableToCompleteException {
  TreeLogger branch=logger.branch(TreeLogger.DEBUG,"String_Node_Str" + remoteService.getQualifiedSourceName() + "String_Node_Str"+ remoteService.getQualifiedSourceName()+ "String_Node_Str",null);
  boolean failed=false;
  JClassType serviceAsync=typeOracle.findType(remoteService.getQualifiedSourceName() + "String_Node_Str");
  if (serviceAsync == null) {
    failed=true;
    branch.branch(TreeLogger.ERROR,"String_Node_Str" + remoteService.getQualifiedSourceName(),null);
  }
 else {
    JMethod[] asyncMethods=serviceAsync.getOverridableMethods();
    JMethod[] syncMethods=remoteService.getOverridableMethods();
    if (asyncMethods.length != syncMethods.length) {
      branch.branch(TreeLogger.ERROR,"String_Node_Str" + remoteService.getQualifiedSourceName() + "String_Node_Str"+ (asyncMethods.length > syncMethods.length ? "String_Node_Str" : "String_Node_Str")+ "String_Node_Str",null);
      failed=true;
    }
 else {
      Map asyncMethodMap=initializeAsyncMethodMap(asyncMethods);
      for (int i=0; i < syncMethods.length; ++i) {
        JMethod syncMethod=syncMethods[i];
        String asyncSig=computeAsyncMethodSignature(syncMethod);
        JMethod asyncMethod=(JMethod)asyncMethodMap.get(asyncSig);
        if (asyncMethod == null) {
          branch.branch(TreeLogger.ERROR,"String_Node_Str" + syncMethod.getReadableDeclaration() + "String_Node_Str",null);
          failed=true;
        }
 else         if (asyncMethod.getReturnType() != JPrimitiveType.VOID) {
          branch.branch(TreeLogger.ERROR,"String_Node_Str" + syncMethod.getReadableDeclaration() + "String_Node_Str",null);
          failed=true;
        }
      }
    }
  }
  if (failed) {
    logValidAsyncInterfaceDeclaration(branch,remoteService);
    throw new UnableToCompleteException();
  }
}