Program: 35666
Project: 35666
Buggy source:
private void parseAndLoginFromWebView(String dataString){
  LoginData loginData=parseLoginData(assembledPrefix,dataString);
  if (loginData != null) {
    dispose();
    UserEntity currentUser=userUtils.getCurrentUser();
    ErrorMessageHolder.ErrorMessageType errorMessageType=null;
    if (currentUser != null && isPasswordUpdate && !currentUser.getUsername().equals(loginData.getUsername())) {
      ErrorMessageHolder.getInstance().setMessageType(ErrorMessageHolder.ErrorMessageType.WRONG_ACCOUNT);
      getRouter().popToRoot();
    }
 else {
      if (!isPasswordUpdate && userUtils.getIfUserWithUsernameAndServer(loginData.getUsername(),baseUrl)) {
        errorMessageType=ErrorMessageHolder.ErrorMessageType.ACCOUNT_UPDATED_NOT_ADDED;
      }
      if (userUtils.checkIfUserIsScheduledForDeletion(loginData.getUsername(),baseUrl)) {
        ErrorMessageHolder.getInstance().setMessageType(ErrorMessageHolder.ErrorMessageType.ACCOUNT_SCHEDULED_FOR_DELETION);
        getRouter().popToRoot();
      }
      ErrorMessageHolder.ErrorMessageType finalErrorMessageType=errorMessageType;
      userQueryDisposable=userUtils.createOrUpdateUser(loginData.getUsername(),loginData.getToken(),loginData.getServerUrl(),null,null,true).subscribe(userEntity -> {
        cookieManager.getCookieStore().removeAll();
        if (!isPasswordUpdate && finalErrorMessageType == null) {
          BundleBuilder bundleBuilder=new BundleBuilder(new Bundle());
          bundleBuilder.putString(BundleKeys.KEY_USERNAME,userEntity.getUsername());
          bundleBuilder.putString(BundleKeys.KEY_TOKEN,userEntity.getToken());
          bundleBuilder.putString(BundleKeys.KEY_BASE_URL,userEntity.getBaseUrl());
          getRouter().pushController(RouterTransaction.with(new AccountVerificationController(bundleBuilder.build())).pushChangeHandler(new HorizontalChangeHandler()).popChangeHandler(new HorizontalChangeHandler()));
        }
 else {
          if (finalErrorMessageType != null) {
            ErrorMessageHolder.getInstance().setMessageType(finalErrorMessageType);
          }
          getRouter().popToRoot();
        }
      }
,throwable -> dispose(),this::dispose);
    }
  }
}

Fixed version (ground truth):
private void parseAndLoginFromWebView(String dataString){
  LoginData loginData=parseLoginData(assembledPrefix,dataString);
  if (loginData != null) {
    dispose();
    UserEntity currentUser=userUtils.getCurrentUser();
    ErrorMessageHolder.ErrorMessageType errorMessageType=null;
    if (currentUser != null && isPasswordUpdate && !currentUser.getUsername().equals(loginData.getUsername())) {
      ErrorMessageHolder.getInstance().setMessageType(ErrorMessageHolder.ErrorMessageType.WRONG_ACCOUNT);
      getRouter().popToRoot();
    }
 else {
      if (!isPasswordUpdate && userUtils.getIfUserWithUsernameAndServer(loginData.getUsername(),baseUrl)) {
        errorMessageType=ErrorMessageHolder.ErrorMessageType.ACCOUNT_UPDATED_NOT_ADDED;
      }
      if (userUtils.checkIfUserIsScheduledForDeletion(loginData.getUsername(),baseUrl)) {
        ErrorMessageHolder.getInstance().setMessageType(ErrorMessageHolder.ErrorMessageType.ACCOUNT_SCHEDULED_FOR_DELETION);
        getRouter().popToRoot();
      }
      ErrorMessageHolder.ErrorMessageType finalErrorMessageType=errorMessageType;
      userQueryDisposable=userUtils.createOrUpdateUser(loginData.getUsername(),loginData.getToken(),loginData.getServerUrl(),null,null,true,null).subscribe(userEntity -> {
        cookieManager.getCookieStore().removeAll();
        if (!isPasswordUpdate && finalErrorMessageType == null) {
          BundleBuilder bundleBuilder=new BundleBuilder(new Bundle());
          bundleBuilder.putString(BundleKeys.KEY_USERNAME,userEntity.getUsername());
          bundleBuilder.putString(BundleKeys.KEY_TOKEN,userEntity.getToken());
          bundleBuilder.putString(BundleKeys.KEY_BASE_URL,userEntity.getBaseUrl());
          getRouter().pushController(RouterTransaction.with(new AccountVerificationController(bundleBuilder.build())).pushChangeHandler(new HorizontalChangeHandler()).popChangeHandler(new HorizontalChangeHandler()));
        }
 else {
          if (finalErrorMessageType != null) {
            ErrorMessageHolder.getInstance().setMessageType(finalErrorMessageType);
          }
          getRouter().popToRoot();
        }
      }
,throwable -> dispose(),this::dispose);
    }
  }
}