myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gerogiannakis Stylianos" <stylianos.gerogianna...@trasys.gr>
Subject RE: Problem with MyFaces in a cluster: CacheRenderKit & NotSerializableException
Date Mon, 27 Aug 2007 16:43:58 GMT
Hello, all,

After a lot of searching, decompiling and debugging of Weblogic classes
we finally found the culprit.

It was a non-transient reference to FacesContext from an ancestor class
of a session-level business object initialized by a Filter (phew! I've
said it)
Once this reference was removed there is absolutely no problem during
auto-serialization.

So, shame on us for not controlling our project better but no problemo
for Trinidad :-)

Perhaps, you could put this situation in some FAQ, sparing other
similarly absent-minded people of many days of searching.

Thank you very much for your time and support.
Cheers,
S.
-----Original Message-----
From: Adam Winer [mailto:awiner@gmail.com] 
Sent: Monday, August 27, 2007 6:03 PM
To: MyFaces Development
Subject: Re: Problem with MyFaces in a cluster: CacheRenderKit &
NotSerializableException

It's a bit bizarre - I don't know why anyone would ever
attach a RenderKit instance to session state.   Manfred,
any idea why that could happen?

-- Adam


On 8/27/07, Manfred Geiler <manfred.geiler@gmail.com> wrote:
> Can you please open a jira issue for this.
> Thanks,
> Manfred
>
> On 8/24/07, Gerogiannakis Stylianos
<stylianos.gerogiannakis@trasys.gr> wrote:
> > Hello, all,
> >
> > (Please, accept my apologies for any cross-posting)
> >
> > We are facing a tricky as well as blocking problem.
> >
> > We are developing a JSF application on Weblogic 9.2 using Trinidad
1.0.
> >
> > In stand-alone mode there is no problem. When we try to execute the
> > application on a cluster, as soon the first JSF page is called we
get a
> > java.io.NotSerializable exception in the console. The exception
follows
> > at the end of the mail.
> >
> > The class in question FacesContextFactoryImpl$CacheRenderKit indeed
only
> > extends FacesContext which is not Serializable.
> >
> > My first thought would be if we are trying to do something funny in
our
> > code, but then again the error appears upon rendering the welcome
page,
> > before any of our business logic code. So, I guess it is an internal
> > framework issue.
> >
> > Unfortunately, the stack trace is not very helpful as to pinpoint
the
> > place in the code where the class is added in the session: session
> > serialization occurs asynchronously in Weblogic.
> >
> > Is there some hidden parameter/switch that we have overlooked?
> > Is it a known issue/limitation?
> > If it is the latter, do you think that making the class Serializable
> > would make the problem go away?
> > We are rather short in available time, so we need the quickest
possible
> > fix.
> >
> > Thank you for any help you may provide.
> >
> > Cheers,
> > S.
> >
> > java.rmi.MarshalException: failed to marshal
> >
update(Lweblogic.cluster.replication.ROID;ILjava.io.Serializable;Ljava.l
> > ang.Object;); nested exception is:
> >         java.io.NotSerializableException:
> >
org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$Cach
> > eRenderKit
> >         at
> >
weblogic.rjvm.BasicOutboundRequest.marshalArgs(BasicOutboundRequest.java
> > :91)
> >         at
> > weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:222)
> >         at
> >
weblogic.cluster.replication.ReplicationManager_921_WLStub.update(Lweblo
> >
gic.cluster.replication.ROID;ILjava.io.Serializable;Ljava.lang.Object;)V
> > (Unknown Source)
> >         at
> >
weblogic.cluster.replication.ReplicationManager.updateSecondary(Replicat
> > ionManager.java:528)
> >         at
> >
weblogic.servlet.internal.session.ReplicatedSessionData.syncSession(Repl
> > icatedSessionData.java:558)
> >         at
> >
weblogic.servlet.internal.session.ReplicatedSessionContext.sync(Replicat
> > edSessionContext.java:82)
> >         at
> >
weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(S
> > ervletRequestImpl.java:2507)
> >         at
> >
weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(S
> > ervletRequestImpl.java:2482)
> >         at
> >
weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.
> > java:1308)
> >         at
> >
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSu
> > bject.java:321)
> >         at
> >
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121
> > )
> >         at
> >
weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.j
> > ava:1302)
> >         at
> >
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java
> > :1368)
> >         at
weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
> >         at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
> > Caused by: java.io.NotSerializableException:
> >
org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$Cach
> > eRenderKit
> >         at
> >
java.io.ObjectOutputStream.writeObject0(Ljava.lang.Object;Z)V(Unknown
> > Source)
> >         at
> >
java.io.ObjectOutputStream.defaultWriteFields(Ljava.lang.Object;Ljava.io
> > .ObjectStreamClass;)V(Unknown Source)
> >         at
> >
java.io.ObjectOutputStream.writeSerialData(Ljava.lang.Object;Ljava.io.Ob
> > jectStreamClass;)V(Unknown Source)
> >         at
> >
java.io.ObjectOutputStream.writeOrdinaryObject(Ljava.lang.Object;Ljava.i
> > o.ObjectStreamClass;Z)V(Unknown Source)
> >         at
> >
java.io.ObjectOutputStream.writeObject0(Ljava.lang.Object;Z)V(Unknown
> > Source)
> >         at
> > java.io.ObjectOutputStream.writeObject(Ljava.lang.Object;)V(Unknown
> > Source)
> >         at
> >
weblogic.servlet.internal.session.ReplicatedSessionChange.writeExternal(
> > ReplicatedSessionChange.java:114)
> >         at
> >
java.io.ObjectOutputStream.writeExternalData(Ljava.io.Externalizable;)V(
> > Unknown Source)
> >         at
> >
java.io.ObjectOutputStream.writeOrdinaryObject(Ljava.lang.Object;Ljava.i
> > o.ObjectStreamClass;Z)V(Unknown Source)
> >         at
> >
java.io.ObjectOutputStream.writeObject0(Ljava.lang.Object;Z)V(Unknown
> > Source)
> >         at
> > java.io.ObjectOutputStream.writeObject(Ljava.lang.Object;)V(Unknown
> > Source)
> >         at
> >
weblogic.rjvm.MsgAbbrevOutputStream.writeObject(MsgAbbrevOutputStream.ja
> > va:614)
> >         at
> >
weblogic.rjvm.MsgAbbrevOutputStream.writeObjectWL(MsgAbbrevOutputStream.
> > java:605)
> >         at
weblogic.rmi.internal.ObjectIO.writeObject(ObjectIO.java:38)
> >         at
> >
weblogic.rjvm.BasicOutboundRequest.marshalArgs(BasicOutboundRequest.java
> > :87)
> >         ... 14 more
> >
> >
> >
>
>
> --
> http://www.irian.at
> Your JSF powerhouse - JSF Consulting,
> Development and Courses in English and
> German
>
> Professional Support for Apache MyFaces
>
 

Mime
View raw message