docs: protected List<CmsUser> getUsersFromFile() {
  
          String separator = null;
          List values = null;
  
          FileReader fileReader;
          BufferedReader bufferedReader;
          List<CmsUser> users = null;
  
          boolean keepPasswordIfPossible = m_importPasswords.getValue().booleanValue();
  
          try {
              bufferedReader = new BufferedReader(
                  new InputStreamReader(new ByteArrayInputStream(m_importFileStream.toByteArray())));
              String line;
              boolean headline = true;
  
              while ((line = bufferedReader.readLine()) != null) {
                  if (users == null) {
                      users = new ArrayList<CmsUser>();
                  }
                  if (separator == null) {
                      separator = CmsXsltUtil.getPreferredDelimiter(line);
                  }
                  List lineValues = CmsStringUtil.splitAsList(line, separator);
                  if (headline) {
                      values = new ArrayList();
                      Iterator itLineValues = lineValues.iterator();
                      while (itLineValues.hasNext()) {
                          values.add(itLineValues.next());
                      }
                      headline = false;
                  } else if (values != null) {
                      CmsUser curUser = new CmsUser();
                      try {
                          for (int i = 0; i < values.size(); i++) {
                              String curValue = (String)values.get(i);
                              try {
                                  Method method = CmsUser.class.getMethod(
                                      "set" + curValue.substring(0, 1).toUpperCase() + curValue.substring(1),
                                      new Class[] {String.class});
                                  String value = "";
                                  if ((lineValues.size() > i) && (lineValues.get(i) != null)) {
                                      value = (String)lineValues.get(i);
  
                                  }
                                  if (curValue.equals("password")) {
                                      if (CmsStringUtil.isEmptyOrWhitespaceOnly(value) | !keepPasswordIfPossible) {
                                          value = m_password.getValue();
                                      }
                                  }
                                  if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(value) && !value.equals("null")) {
                                      method.invoke(curUser, new Object[] {value});
                                  }
                              } catch (NoSuchMethodException ne) {
                                  if (!CmsStringUtil.isEmptyOrWhitespaceOnly((String)lineValues.get(i))) {
                                      curUser.setAdditionalInfo(curValue, lineValues.get(i));
                                  }
                              } catch (IllegalAccessException le) {
                                  //
                              } catch (InvocationTargetException te) {
                                  //
                              }
                          }
                      } catch (CmsRuntimeException e) {
                          //
                      }
                      users.add(curUser);
                  }
              }
              bufferedReader.close();
          } catch (IOException e) {
              //noop
          }
  
          return users;
      }