Program: 69529
Project: 69529
Buggy source:
@Override protected boolean validateFormLogic(UserRequest ureq){
  Object validatedInp=getFromRunContext("String_Node_Str");
  String inp=textAreaElement.getValue();
  if (validatedInp != null && validatedInp.equals(inp)) {
    return true;
  }
  String defaultlang=I18nModule.getDefaultLocale().toString();
  List<String> importedEmails=new ArrayList<String>();
  boolean importDataError=false;
  idents=new ArrayList<Identity>();
  newIdents=new ArrayList<TransientIdentity>();
  updateIdents=new ArrayList<UpdateIdentity>();
  Set<String> tempEmailsInUse=getTemporaryEmailInUse();
  Collection<String> languages=I18nModule.getEnabledLanguageKeys();
  String[] lines=inp.split("String_Node_Str");
  for (int i=0; i < lines.length; i++) {
    if (i % 25 == 0) {
      DBFactory.getInstance().commitAndCloseSession();
    }
    String line=lines[i];
    if (line.equals("String_Node_Str"))     continue;
    String delimiter="String_Node_Str";
    if (line.indexOf(delimiter) == -1)     delimiter="String_Node_Str";
    String[] parts=line.split(delimiter);
    String login, pwd, lang;
    int columnId=0;
    if (parts.length > columnId) {
      login=parts[columnId].trim();
      if (!UserManager.getInstance().syntaxCheckOlatLogin(login)) {
        textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),login});
        importDataError=true;
        break;
      }
    }
 else {
      textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1)});
      importDataError=true;
      break;
    }
    columnId++;
    if (canCreateOLATPassword) {
      if (parts.length > columnId) {
        pwd=parts[columnId].trim();
        if (StringHelper.containsNonWhitespace(pwd)) {
          if (pwd.startsWith(UserImportController.SHIBBOLETH_MARKER) && ShibbolethModule.isEnableShibbolethLogins()) {
          }
 else           if (!UserManager.getInstance().syntaxCheckOlatPassword(pwd)) {
            textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),pwd});
            importDataError=true;
            break;
          }
        }
 else {
          pwd=null;
        }
      }
 else {
        textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1)});
        importDataError=true;
        break;
      }
    }
 else {
      pwd=null;
    }
    columnId++;
    if (parts.length > columnId) {
      lang=parts[columnId].trim();
      if (lang.equals("String_Node_Str")) {
        lang=defaultlang;
      }
 else       if (!languages.contains(lang)) {
        textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),lang});
        importDataError=true;
        break;
      }
    }
 else {
      lang=defaultlang;
    }
    columnId++;
    Identity ident=BaseSecurityManager.getInstance().findIdentityByName(login);
    if (ident != null) {
      UpdateIdentity uIdentity=new UpdateIdentity(ident,pwd,lang);
      idents.add(uIdentity);
      updateIdents.add(uIdentity);
      importDataError=updateUserProperties(uIdentity,parts,i,columnId,tempEmailsInUse,importedEmails);
      if (importDataError)       break;
    }
 else {
      for (Iterator<TransientIdentity> it_news=newIdents.iterator(); it_news.hasNext(); ) {
        TransientIdentity singleUser=it_news.next();
        if (singleUser.getName().equalsIgnoreCase(login)) {
          textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),login});
          importDataError=true;
          break;
        }
      }
      TransientIdentity ud=new TransientIdentity();
      ud.setName(login);
      ud.setPassword(pwd);
      ud.setLanguage(lang);
      importDataError=updateUserProperties(ud,parts,i,columnId,tempEmailsInUse,importedEmails);
      if (importDataError)       break;
      idents.add(ud);
      newIdents.add(ud);
    }
  }
  return !importDataError;
}

Fixed version (ground truth):
@Override protected boolean validateFormLogic(UserRequest ureq){
  Object validatedInp=getFromRunContext("String_Node_Str");
  String inp=textAreaElement.getValue();
  if (validatedInp != null && validatedInp.equals(inp)) {
    return true;
  }
  String defaultlang=I18nModule.getDefaultLocale().toString();
  List<String> importedEmails=new ArrayList<String>();
  boolean importDataError=false;
  idents=new ArrayList<Identity>();
  newIdents=new ArrayList<TransientIdentity>();
  updateIdents=new ArrayList<UpdateIdentity>();
  Set<String> tempEmailsInUse=getTemporaryEmailInUse();
  Collection<String> languages=I18nModule.getEnabledLanguageKeys();
  String[] lines=inp.split("String_Node_Str");
  for (int i=0; i < lines.length; i++) {
    if (i % 25 == 0) {
      DBFactory.getInstance().commitAndCloseSession();
    }
    String line=lines[i];
    if (line.equals("String_Node_Str"))     continue;
    String delimiter="String_Node_Str";
    if (line.indexOf(delimiter) == -1)     delimiter="String_Node_Str";
    String[] parts=line.split(delimiter);
    String login, pwd, lang;
    int columnId=0;
    if (parts.length > columnId) {
      login=parts[columnId].trim();
      if (!UserManager.getInstance().syntaxCheckOlatLogin(login)) {
        textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),login});
        importDataError=true;
        break;
      }
    }
 else {
      textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1)});
      importDataError=true;
      break;
    }
    columnId++;
    if (canCreateOLATPassword) {
      if (parts.length > columnId) {
        pwd=parts[columnId].trim();
        if (StringHelper.containsNonWhitespace(pwd)) {
          if (pwd.startsWith(UserImportController.SHIBBOLETH_MARKER) && ShibbolethModule.isEnableShibbolethLogins()) {
            String authusername=pwd.substring(UserImportController.SHIBBOLETH_MARKER.length());
            Authentication auth=securityManager.findAuthenticationByAuthusername(authusername,ShibbolethDispatcher.PROVIDER_SHIB);
            if (auth != null) {
              String authLogin=auth.getIdentity().getName();
              if (!login.equals(authLogin)) {
                textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),authusername});
                importDataError=true;
                break;
              }
            }
          }
 else           if (!UserManager.getInstance().syntaxCheckOlatPassword(pwd)) {
            textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),pwd});
            importDataError=true;
            break;
          }
        }
 else {
          pwd=null;
        }
      }
 else {
        textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1)});
        importDataError=true;
        break;
      }
    }
 else {
      pwd=null;
    }
    columnId++;
    if (parts.length > columnId) {
      lang=parts[columnId].trim();
      if (lang.equals("String_Node_Str")) {
        lang=defaultlang;
      }
 else       if (!languages.contains(lang)) {
        textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),lang});
        importDataError=true;
        break;
      }
    }
 else {
      lang=defaultlang;
    }
    columnId++;
    Identity ident=BaseSecurityManager.getInstance().findIdentityByName(login);
    if (ident != null) {
      UpdateIdentity uIdentity=new UpdateIdentity(ident,pwd,lang);
      idents.add(uIdentity);
      updateIdents.add(uIdentity);
      importDataError=updateUserProperties(uIdentity,parts,i,columnId,tempEmailsInUse,importedEmails);
      if (importDataError)       break;
    }
 else {
      for (Iterator<TransientIdentity> it_news=newIdents.iterator(); it_news.hasNext(); ) {
        TransientIdentity singleUser=it_news.next();
        if (singleUser.getName().equalsIgnoreCase(login)) {
          textAreaElement.setErrorKey("String_Node_Str",new String[]{String.valueOf(i + 1),login});
          importDataError=true;
          break;
        }
      }
      TransientIdentity ud=new TransientIdentity();
      ud.setName(login);
      ud.setPassword(pwd);
      ud.setLanguage(lang);
      importDataError=updateUserProperties(ud,parts,i,columnId,tempEmailsInUse,importedEmails);
      if (importDataError)       break;
      idents.add(ud);
      newIdents.add(ud);
    }
  }
  return !importDataError;
}