myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Kienenberger" <mkien...@gmail.com>
Subject Re: Problem with MyFaces in a cluster: CacheRenderKit & NotSerializableException
Date Mon, 27 Aug 2007 17:02:14 GMT
You could write something up and add it to

http://wiki.apache.org/myfaces
or
http://wiki.apache.org/myfaces/Trinidad

wherever it is most appropriate.

On 8/27/07, Gerogiannakis Stylianos <stylianos.gerogiannakis@trasys.gr> wrote:
> 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