Kalle,

thanks! I will *play* with it!

BTW. javax.faces.application.StateManager.SerializedView
(inner class) is serializable IN myfaces!

But I guess it shouldn't. See
JavaDoc for JSF API @ SUN

But spec says nothing on that,
I guess (a time ago I looked inside that issue...)

Also thanks for mailing it to the list!

BTW. I mailed to infrastructure guys @apache,
after we leave incubator, they change it...

Ted brings this up to PMC of incubator.

> -----Original Message-----
> From: Korhonen, Kalle [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, January 13, 2005 10:13 PM
> To: MyFaces Development
> Subject: RE: Exception during server-side state saving
> 
> 
> Hi,
> 
> I wrote this (read below) in the comments of bug JIRA MYFACES-75
> (exception during server-side state saving). Thought it might 
> be useful
> to send it to the list as well, cause I surely don't know what's the
> proper way to fix this.. Anybody got any good ideas? 
> 
> Kalle 
> 
> ---
> I believe servlet spec 2.3 requires that a container is able to
> serialize the session for persistence. In Tomcat, you can configure a
> session.PersistentManager to not try to store the session on disk by
> setting its attribute "saveOnRestart" to false. The attribute 
> by default
> is true, which causes the whole problem. 
> 
> Just marking JspStateManagerImpl serializable isn't enough to fix the
> problem. When I was working with sourceforge codebase, I 
> experimentally
> hacked and successfully fixed the problem with these steps:
> - marked ...application.jsp.JspStateManagerImpl Serializable
> - marked its private member _renderKitFactory transient
> - marked javax.faces.application.StateManager.SerializedView (an inner
> class) Serializable
> - marked its private members _structure and _state transient
> 
> However, I never made a patch for it, because I seriously doubt that
> making these changes is the correct way of solving the problem. If you
> make the private members transient, it prevents the serialization of
> backing beans in session scope. It might also be that backing beans
> shouldn't be included when the container is trying to serialize the
> session, but not sure. 
> 
> I guess the view is stored in session for being able to 
> restore it, but
> when the container is shutting down, it should be removed from the
> session. I don't think it should be serializable at all. About the
> StateManager, I'm not too sure if it should or not.
> Surely we shouldn't throw an exception of StateManager not being
> Serializable, but I would almost leave some exception there or, better
> yet, a descriptive error message, and just force the users to either
> configure their containers correctly or deal with it some other way.
> 
> > -----Original Message-----
> > From: Sean Schofield [mailto:[EMAIL PROTECTED] 
> > Sent: Saturday, January 08, 2005 3:07 PM
> > To: MyFaces Development
> > Subject: Re: Exception during server-side state saving
> > 
> > Matthias,
> > 
> > Then it seems like additional classes need to be made Serializable.
> > My application was *very* simple so I didn't run into this problem.
> > 
> > I still think you need my patch b/c if you take it out, it 
> > will complain that JspStateManagerImpl can't be serialized.
> > 
> > I don't know enough about MyFaces yet to know why 
> > JspStateManagerImpl should be serialized.  I suspect 
> > somewhere the code is trying to store it in the session.  The 
> > solution is to stop requiring that it be serialized or fix 
> > all of the potential things that could be stored in 
> > JspStateManagerImpl and make them serializable as well.
> > 
> > I will try to look into it.
> > 
> > Regards,
> > sean
> > 
> > 
> 

Reply via email to