3 Replies Latest reply on Oct 26, 2006 2:27 PM by John Gilbert

    Non-serializable objects in session break clustered app

    Christoph Drieschner Novice

      Hi,

      jboss-seam-1.0.0.CR2 introduces non-serializable Objects (LocaleSelector, FacesMessages) that are put into the session. This causes an IllegalArgumentException if a webapp is marked as .

      Marking as serializable works around the exception, but
      FacesMessages.tasks is a list of Runnables...

      Example for attribute FacesMessages:

      12:44:08,692 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
      java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
      at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1244)
      at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:129)
      at org.jboss.seam.servlet.ServletSessionImpl.setAttribute(ServletSessionImpl.java:46)
      at org.jboss.seam.contexts.ServerConversationContext.flush(ServerConversationContext.java:335)
      at org.jboss.seam.contexts.Lifecycle.flushAndDestroyContexts(Lifecycle.java:316)
      at org.jboss.seam.contexts.Lifecycle.endRequest(Lifecycle.java:221)
      at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:173)
      at org.apache.myfaces.lifecycle.LifecycleImpl.informPhaseListenersAfter(LifecycleImpl.java:536)
      at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:359)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
      at java.lang.Thread.run(Thread.java:595)