Re: DefaultContextAwareELException serialization problem

2014-04-09 Thread Felipe Jaekel
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?

2014-04-09 Thread Felipe Jaekel
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?

2014-04-09 Thread Howard W. Smith, Jr.
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?

2014-04-09 Thread Howard W. Smith, Jr.
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

2014-04-09 Thread Felipe Jaekel
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

2014-04-09 Thread Howard W. Smith, Jr.
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