Olá pessoal, estou tentando utilizar o escopo flash para persistir minhas mensagens na segunda requisição utilizando o código:
context.getExternalContext().getFlash().setKeepMessages(true);
Entretanto, quando erro meu usuário ou senha a mensagem abaixo é exibida no navegador:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException
javax.faces.webapp.FacesServlet.service(FacesServlet.java:671)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NullPointerException
java.lang.String.getBytes(Unknown Source)
com.sun.faces.util.ByteArrayGuardAESCTR.encrypt(ByteArrayGuardAESCTR.java:124)
com.sun.faces.context.flash.ELFlash$PreviousNextFlashInfoManager.encode(ELFlash.java:1466)
com.sun.faces.context.flash.ELFlash.doLastPhaseActions(ELFlash.java:721)
com.sun.faces.context.flash.ELFlash.doPostPhaseActions(ELFlash.java:645)
com.sun.faces.context.ExternalContextImpl.doLastPhaseActions(ExternalContextImpl.java:1121)
com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:656)
com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:221)
com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:183)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:132)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.29 logs.
Se eu me logar corretamente tudo funciona, se eu tirar a linha "context.getExternalContext().getFlash().setKeepMessages(true);" tudo funciona também. Não estou conseguindo identificar o erro. Alguém poderia me auxiliar? Segue em outro post o xhtml do login e o seu managedbean, respectivamente.