code: protected void updatePersons()
      {
          for (final PersonMapper persMapper : this.persMappers) {
              if (ImportHandler.LOG.isDebugEnabled()) {
                  ImportHandler.LOG.debug("update person '" + persMapper.name + "'");
              }
              try {
                  final LoginContext login =
                      new LoginContext(getApplicationName(), new LoginCallbackHandler(
                              ActionCallback.Mode.PERSON_INFORMATION, persMapper.name, null));
                  login.login();
  
                  Person person = getPerson(login);
  
                  if (person == null) {
                      person = createPerson(login);
                  }
  
                  if (person != null) {
  
                      updatePerson(login, person);
  
                      person.cleanUp();
  
                      updateRoles(login, person);
                      updateGroups(login, person);
                  }
              } catch (final EFapsException e) {
                  ImportHandler.LOG.error("update failed for '" + persMapper.name + "'", e);
              } catch (final LoginException e) {
                  ImportHandler.LOG.error("update failed for '" + persMapper.name + "'", e);
              }
          }
      }
docs: <p>Each found person is updated in eFaps (or created if not already
  existing). The methods from the login handler {@link LoginHandler} are
  used for the update.</p>
  <p>Each user name is written as debug information to the log file.</p>
  <p>If an exception is thrown inside called methods, the exceptions
  are only written to the log as errors.</p>
  
  @see LoginHandler#getPerson(LoginContext)
  @see LoginHandler#createPerson(LoginContext)
  @see LoginHandler#updatePerson(LoginContext, Person)
  @see LoginHandler#updateRoles(LoginContext, Person)
  @see LoginHandler#updateGroups(LoginContext, Person)