Re: DefaultContextAwareELException serialization problem
Thanks for the feedback. I have an exception handler similar to this http://ovaraksin.blogspot.com.br/2010/10/global-handling-of-all-unchecked.html, where the exception is stored in the session. I realized I could handle the exception without storing it in the session, so the problem is gone. 2014-04-04 11:42 GMT-03:00 Leonardo Uribe lu4...@gmail.com: Hi An exception shouldn't be serializable. I can't find any line of code in MyFaces that serialize and exception, so I suppose you are doing it manually somehow. regards, Leonardo 2014-04-04 15:43 GMT+02:00 Felipe Jaekel fkjae...@gmail.com: I'm eventually seeing this in my Tomcat 7 logs: *IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.myfaces.view.facelets.el.DefaultContextAwareELException.* I'm using MyFaces 2.2.2. Shouldn't DefaultContextAwareELException be serializable? Thanks *Full stackTrace:* Abr 04, 2014 10:35:50 AM org.apache.catalina.session.StandardManager doLoad Grave: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.myfaces.view.facelets.el.DefaultContextAwareELException java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.myfaces.view.facelets.el.DefaultContextAwareELException at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1354) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1595) at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1060) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:282) at org.apache.catalina.session.StandardManager.load(StandardManager.java:202) at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:489) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5476) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3988) at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:425) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1345) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519) at java.lang.Thread.run(Thread.java:744) Caused by: java.io.NotSerializableException: org.apache.myfaces.view.facelets.el.DefaultContextAwareELException at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1671) at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1077) at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:430) at org.apache.catalina.session.StandardManager.unload(StandardManager.java:351) at
Re: Generic value for org.apache.myfaces.EXPRESSION_FACTORY?
Is it reliable? Are there any migration notes? Thanks 2014-03-27 19:37 GMT-03:00 Howard W. Smith, Jr. smithh032...@gmail.com: On Thu, Mar 27, 2014 at 8:22 AM, Thomas Andraschko andraschko.tho...@gmail.com wrote: I just deliver JUEL in all my apps and setting the EXPRESSION_FACTORY to JUEL. +1 me too. context-param param-nameorg.apache.myfaces.EXPRESSION_FACTORY/param-name param-valuede.odysseus.el.ExpressionFactoryImpl/param-value /context-param context-param param-nameorg.apache.myfaces.EL_RESOLVER_COMPARATOR/param-name param-valueorg.apache.myfaces.el.unified.OpenWebBeansELResolverComparator/param-value /context-param context-param param-nameorg.apache.myfaces.SUPPORT_JSP_AND_FACES_EL/param-name param-valuefalse/param-value /context-param
Re: Generic value for org.apache.myfaces.EXPRESSION_FACTORY?
Is JUEL reliable? JUEL works well. you will have to 'migrate' your XHTML to JUEL. hmmm, i think I had to add '()' (parentheses) to my actionListener=... or action= Below is a quick search that I did via TextPad against my project; below is first few occurrences. Searching for: actionlistener header_menubar.xhtml(74): actionListener=#{pf_rollingStockController.prepareList()} header_menubar.xhtml(77): actionListener=#{pf_customerController.prepareList()} header_menubar.xhtml(80): actionListener=#{pf_chargesController.prepareList()} header_menubar.xhtml(83): actionListener=#{pf_serviceController.prepareList()} header_menubar.xhtml(86): actionListener=#{pf_driverController.prepareList()} header_menubar.xhtml(89): actionListener=#{pf_vehicleController.prepareList()} header_menubar.xhtml(92): actionListener=#{pf_ordersController.prepareUtilitiesMenu()} header_menubar.xhtml(96): actionListener=#{pf_usersController.prepareList()} header_menubar.xhtml(100): actionListener=#{pf_usersController.prepareChangePassword()} header_menubar.xhtml(103): actionListener=#{messengerBean.prepareMessengerForUser()} Hmmm, i think if you search google for site:forum.primefaces.org high expression language then you may see the forum topic where Thomas recommended JUEL (and MyFaces), and I mentioned some of my [migration] challenges. :) On Wed, Apr 9, 2014 at 1:22 PM, Felipe Jaekel fkjae...@gmail.com wrote: Is it reliable? Are there any migration notes? Thanks 2014-03-27 19:37 GMT-03:00 Howard W. Smith, Jr. smithh032...@gmail.com: On Thu, Mar 27, 2014 at 8:22 AM, Thomas Andraschko andraschko.tho...@gmail.com wrote: I just deliver JUEL in all my apps and setting the EXPRESSION_FACTORY to JUEL. +1 me too. context-param param-nameorg.apache.myfaces.EXPRESSION_FACTORY/param-name param-valuede.odysseus.el.ExpressionFactoryImpl/param-value /context-param context-param param-nameorg.apache.myfaces.EL_RESOLVER_COMPARATOR/param-name param-valueorg.apache.myfaces.el.unified.OpenWebBeansELResolverComparator/param-value /context-param context-param param-nameorg.apache.myfaces.SUPPORT_JSP_AND_FACES_EL/param-name param-valuefalse/param-value /context-param
Re: Generic value for org.apache.myfaces.EXPRESSION_FACTORY?
On Wed, Apr 9, 2014 at 1:30 PM, Howard W. Smith, Jr. smithh032...@gmail.com wrote: s JUEL reliable? JUEL works well. you will have to 'migrate' your XHTML to JUEL. hmmm, i think I had to add '()' (parentheses) to my actionListener=... or action= Below is a quick search that I did via TextPad against my project; below is first few occurrences. Searching for: actionlistener header_menubar.xhtml(74): actionListener=#{pf_rollingStockController.prepareList()} header_menubar.xhtml(77): actionListener=#{pf_customerController.prepareList()} header_menubar.xhtml(80): actionListener=#{pf_chargesController.prepareList()} header_menubar.xhtml(83): actionListener=#{pf_serviceController.prepareList()} header_menubar.xhtml(86): actionListener=#{pf_driverController.prepareList()} header_menubar.xhtml(89): actionListener=#{pf_vehicleController.prepareList()} header_menubar.xhtml(92): actionListener=#{pf_ordersController.prepareUtilitiesMenu()} header_menubar.xhtml(96): actionListener=#{pf_usersController.prepareList()} header_menubar.xhtml(100): actionListener=#{pf_usersController.prepareChangePassword()} header_menubar.xhtml(103): actionListener=#{messengerBean.prepareMessengerForUser()} Hmmm, i think if you search google for site:forum.primefaces.org high expression language then you may see the forum topic where Thomas recommended JUEL (and MyFaces), and I mentioned some of my [migration] challenges. :) For multiple-file-search-and-replace, I use TextPad multiple file search-and-replace. I used TextPad when I migrated my app to use JUEL (and MyFaces). :)
ViewExpiredException, but session hasn't timed out
I'm getting view expired exceptions if the user tries to perform an action in a page that isn't fully loaded. javax.faces.application.ViewExpiredException: /page/plano/plano.jsfNo saved view state could be found for the view identifier: /page/plano/plano.jsf at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:181) Looking at RestoreViewExceutor source code we have this: if (facesContext.getResponseComplete()) { // If the view handler cannot restore the view and the response // is complete, it can be an error or some logic in restoreView. return true; } else { // If the return from ViewHandler.restoreView() is null, throw a ViewExpiredException with an // appropriate error message. throw new ViewExpiredException(No saved view state could be found for the view identifier: + viewId, viewId); } } Page hasn't fully loaded yet, so facesContext.getResponseComplete() is returning false, but isn't there a way to avoid this? Page gets unusable after the VEE is thrown. Thanks in advance, Phillip Full stackTrace: javax.faces.application.ViewExpiredException: /page/plano/plano.jsfNo saved view state could be found for the view identifier: /page/plano/plano.jsf at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:181) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at com.googlecode.psiprobe.Tomcat70AgentValve.invoke(Tomcat70AgentValve.java:38) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) at
Re: ViewExpiredException, but session hasn't timed out
Wow, you're using Shiro. Would be nice to have a list of steps how you duplicate this in your app, definitely and always. I definitely suggest you use OmniFaces restore view component to avoid this exception. On Apr 9, 2014 1:41 PM, Felipe Jaekel fkjae...@gmail.com wrote: I'm getting view expired exceptions if the user tries to perform an action in a page that isn't fully loaded. javax.faces.application.ViewExpiredException: /page/plano/plano.jsfNo saved view state could be found for the view identifier: /page/plano/plano.jsf at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:181) Looking at RestoreViewExceutor source code we have this: if (facesContext.getResponseComplete()) { // If the view handler cannot restore the view and the response // is complete, it can be an error or some logic in restoreView. return true; } else { // If the return from ViewHandler.restoreView() is null, throw a ViewExpiredException with an // appropriate error message. throw new ViewExpiredException(No saved view state could be found for the view identifier: + viewId, viewId); } } Page hasn't fully loaded yet, so facesContext.getResponseComplete() is returning false, but isn't there a way to avoid this? Page gets unusable after the VEE is thrown. Thanks in advance, Phillip Full stackTrace: javax.faces.application.ViewExpiredException: /page/plano/plano.jsfNo saved view state could be found for the view identifier: /page/plano/plano.jsf at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:181) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at com.googlecode.psiprobe.Tomcat70AgentValve.invoke(Tomcat70AgentValve.java:38) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at