NIech ktoś wytłumaczy, na jakiej zasadzie działa wyświetlanie wiadomości w <h:messages /> / <p:messages />
Wiadomości z poniższego kodu się wyświetlają poprawnie.

    @PostConstruct
    public void init() {
        try {
            throw new RuntimeException();
        } catch (RuntimeException e) {
            i18nExceptionHandler.handleException(e);
        }
    }

natomiast z tego samego beana inny kod już nie.

    public String login() {
        try {
           //działanie odpowiadające za logowanie, weryfikację itp
        } catch (AuthenticationException e) {
          //to już nie działa
            i18nExceptionHandler.handleException(e);
        }
        return "/pages/loggedin?faces-redirect=true";
    }

konsola wypluwa następujące info:
WARNING: There are some unhandled FacesMessages, this means not every FacesMessage had a chance to be rendered.

Wie ktoś dlaczego to tak działa? Czy może powinienem dla metody login użyć jakiegoś validatora?

EDIT:
dzieje się tak dlatego, że metoda, która ma wyświetlać messages musi być typu void