2013-07-16 4 views
9

Ich habe ein Upgrade auf Mojarra JSF 2.2.1 (ab 2.1.22) und für jedes meiner Anfragen seitdem eine Ausnahme in der Konsole Ich habe:Ausnahme über Flash in Mojarra JSF

GRAVE: JSF1094: Could not decode flash data from incoming cookie value /?. 
Processing will continue, but the flash is unavailable for this request. 
com.sun.faces.lifecycle.InvokeApplicationPhase execute 

anfordern wird erfolgreich beendet, wenn ich kein Blitzgerät verwende. Aber, wie ich diesen Rahmen für FacesMessages bin mit, wenn ich eine Nachricht hier setzen, habe ich ein NullPointerException und der Navigationsfluss wird unterbrochen:

GRAVE: El Servlet.service() para servlet Faces Servlet lanzó una excepción 
java.lang.NullPointerException 
    at com.sun.faces.context.flash.ELFlash.loggingGetPhaseMapForWriting(ELFlash.java:803) 
    at com.sun.faces.context.flash.ELFlash.setKeepMessages(ELFlash.java:323) 
    at org.omnifaces.util.Messages.addFlash(Messages.java:460) 
    at org.omnifaces.util.Messages.addFlashInfo(Messages.java:488) 
    at com.company.view.utils.FacesUtils.addInfoMessage(FacesUtils.java:91) 
    at com.company.view.utils.FacesUtils.addInfoMessage(FacesUtils.java:79) 
    at com.company.view.beans.navegable.detectables.generic.NavegableDetectableAddGeneric.save(NavegableDetectableAddGeneric.java:92) 
    at com.company.view.beans.navegable.detectables.generic.NavegableDetectableAddGeneric.actionSave(NavegableDetectableAddGeneric.java:55) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:234) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) 
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) 
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) 
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) 
    at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:137) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.tesicnor.system.view.filters.SetHttpHeadersFilter.doFilter(SetHttpHeadersFilter.java:143) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) 
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.tesicnor.system.view.filters.SimpleSecurityFilter.doFilter(SimpleSecurityFilter.java:59) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:619) 

ich auch das gleiche Problem mit dem letzten Version von 2.1.x habe Zweig (2.1.24). By the way, ist das, was meine addInfoMessage Methode funktioniert:

/** 
* Add information message. 
* 
* @param msg 
*   the information message 
*/ 
public void addInfoMessage(String msg) { 
    addInfoMessage(null, msg); 
} 

/** 
* Add information message to a specific client. 
* 
* @param clientId 
*   the client id 
* @param msg 
*   the information message 
*/ 
public void addInfoMessage(String clientId, String msg) { 
    Messages.addFlashInfo(clientId, msg); 
} 

Als Messages Klasse von org.omnifaces.util.Messages Typ.


EDITED

Das Problem, das zu verschwinden scheint involviert sind nur mit Firefox und wenn Ansicht params passiert, wenn ich meinen Browser-Cookies löschen. Es scheint auch in der ganzen 2.2.x und 2.1.x Zweige (zumindest bis 2.2.4-2.1.26), Anzeigen einer etwas anderen Spur zu beharren:

com.sun.faces.context.flash .ELFlash getCurrentFlashManager GRAVE: JSF1094: Flash-Daten konnten nicht vom eingehenden Cookie-Wert dekodiert werden. Ungültige Zeichen im entschlüsselten Wert. Die Verarbeitung wird fortgesetzt, aber der Flash ist für diese Anforderung nicht verfügbar.

Nach @BalusC here (August 2013):

Wir diese 2.1.24 in Mojarra auch angetroffen werden. Wir sind zu dem Schluss gekommen, dass die ELFlash-Klasse - ehrlich gesagt - ein schreckliches Durcheinander ist, das scheinbar von einem Praktikanten ohne fundiertes Hintergrundwissen über HTTP-Angelegenheiten geschrieben wurde.

+1

Ich habe das gleiche Problem. Dies scheint zu geschehen, wenn ein Flash aktiv ist und Sie den Server neu starten. Wenn Sie Ihre Browser-Cookies löschen (für Ihre URL), dann geht das weg. –

Antwort

2

ich das Problem auf jedem Browser neu erstellen können. Ich habe gerade https://java.net/jira/browse/JAVASERVERFACES-2973 geöffnet, um dies zu adressieren.

+0

Es ist definitiv ein Fehler. –

+0

Es scheint, dass sie es für 2.1.25 behoben haben.Ich habe jedoch immer noch Probleme, weil die eingefügten Flash-Werte mehr als zwei Anfragen überstehen. Ich benutze POST-REDIRECT-GET-Muster. –

1

Ich denke, Mojarra 2.2.2/2.1.25 wird dieses Problem beheben, wenn man bedenkt: https://java.net/jira/browse/JAVASERVERFACES-2955

+0

Dieser Bug ist über IE, ich benutze Firefox –

+0

Ich weiß, aber es sieht ziemlich ähnlich.Lassen wir warten ... –

Verwandte Themen