1 Reply Latest reply on Aug 17, 2006 1:15 PM by David Bernstein

    SerializationException on org.jboss.seam.core.Messages from

    David Bernstein Newbie

      I'm getting a SerializationException on org.jboss.seam.core.Messages from my stateful session bean and it's quite unclear to me why or how. I'm using Seam extended managed persistence. (Which is relevant or irrelevant?) Can anybody explain how this is possible?

      code snippet

      @Stateful
      @Name("groupManager")
      @LoggedIn
      public class GroupManagerBean implements GroupManager, Serializable {
      
       @In(create=true)
       private EntityManager orgmobDatabase;
      
       @In(create=true)
       private Map<String, String> messages;
      
       @In(create=true)
       private transient FacesMessages facesMessages;
      
       private transient Map<Locale,MembershipComparator> membershipComparatorMap;
      
       public GroupManagerBean() {
       initMembershipComparatorMap();
       }
      
       private void initMembershipComparatorMap() {
       membershipComparatorMap = new HashMap<Locale,MembershipComparator>();
       }
      
       private void readObject( ObjectInputStream in )
       throws IOException, ClassNotFoundException {
       in.defaultReadObject();
       initMembershipComparatorMap();
       }
      
      }
      


      I know I don't have an explicit serialVersionUID but I (naively?) didn't think that could make a difference since all I'm doing right now is repeatedly deploying my app to JBoss which only uses one compiler (1.5.0_07-b03, though I don't think that matters) and undeploys any previously installed version of my app. I can show more code if that's needed. The stack trace is:


      2006-08-11 15:31:21,265 DEBUG [org.hibernate.impl.SessionFactoryImpl] deserialized: 402881e40cff1c58010cff51838c0009
      2006-08-11 15:31:21,265 DEBUG [org.hibernate.impl.SessionFactoryObjectFactory] lookup: uid=402881e40cff1c58010cff51838c0009
      2006-08-11 15:31:21,265 DEBUG [org.hibernate.impl.SessionFactoryImpl] resolved SessionFactory by uid
      2006-08-11 15:31:21,265 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/member].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
      javax.faces.el.EvaluationException: Exception while invoking expression #{groupManager.forceGroup}
      at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:153)
      at org.jboss.seam.core.Pages.callAction(Pages.java:161)
      at org.jboss.seam.core.Pages.callAction(Pages.java:143)
      at org.jboss.seam.jsf.AbstractSeamPhaseListener.callPageActions(AbstractSeamPhaseListener.java:128)
      at org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:98)
      at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:50)
      at org.jboss.seam.jsf.SeamExtendedManagedPersistencePhaseListener.beforePhase(SeamExtendedManagedPersistencePhaseListener.java:38)
      at org.apache.myfaces.lifecycle.LifecycleImpl.informPhaseListenersBefore(LifecycleImpl.java:520)
      at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:342)
      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.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:30)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      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.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
      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)
      Caused by: java.lang.RuntimeException: java.io.IOException
      at org.jboss.ejb3.stateful.StatefulBeanContext.extractBeanAndInterceptors(StatefulBeanContext.java:365)
      at org.jboss.ejb3.stateful.StatefulBeanContext.getInstance(StatefulBeanContext.java:309)
      at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:75)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:188)
      at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
      at $Proxy444.forceGroup(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
      ... 30 more
      Caused by: java.io.IOException
      at org.jboss.serial.persister.RegularObjectPersister.readSlotWithMethod(RegularObjectPersister.java:107)
      at org.jboss.serial.persister.RegularObjectPersister.defaultRead(RegularObjectPersister.java:269)
      at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:241)
      at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreaming(ObjectDescriptorFactory.java:411)
      at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDescriptorFactory.java:81)
      at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectInput.readObject(DataContainer.java:639)
      at org.jboss.serial.persister.ArrayPersister.readObjectArray(ArrayPersister.java:196)
      at org.jboss.serial.persister.ArrayPersister.readData(ArrayPersister.java:172)
      at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreaming(ObjectDescriptorFactory.java:411)
      at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDescriptorFactory.java:81)
      at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectInput.readObject(DataContainer.java:639)
      at org.jboss.serial.io.JBossObjectInputStream.readObjectOverride(JBossObjectInputStream.java:165)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:343)
      at org.jboss.serial.io.MarshalledObject.get(MarshalledObject.java:68)
      at org.jboss.ejb3.stateful.StatefulBeanContext.extractBeanAndInterceptors(StatefulBeanContext.java:342)
      ... 47 more
      Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.jboss.serial.persister.RegularObjectPersister.readSlotWithMethod(RegularObjectPersister.java:103)
      ... 61 more
      Caused by: org.jboss.serial.exception.SerializationException: Could not create instance of org.jboss.seam.core.Messages$1 - org.jboss.seam.core.Messages$1
      at org.jboss.serial.classmetamodel.ClassMetaData.newInstance(ClassMetaData.java:327)
      at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:239)
      at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreaming(ObjectDescriptorFactory.java:411)
      at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDescriptorFactory.java:81)
      at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectInput.readObject(DataContainer.java:639)
      at org.jboss.serial.persister.RegularObjectPersister.readSlotWithFields(RegularObjectPersister.java:353)
      at org.jboss.serial.persister.ObjectInputStreamProxy.defaultReadObject(ObjectInputStreamProxy.java:78)
      at com.orgmob.member.GroupManagerBean.readObject(GroupManagerBean.java:135)
      ... 66 more
      Caused by: java.lang.InstantiationException: org.jboss.seam.core.Messages$1
      at java.lang.Class.newInstance0(Class.java:335)
      at java.lang.Class.newInstance(Class.java:303)
      at org.jboss.serial.classmetamodel.ClassMetaData.newInstance(ClassMetaData.java:319)
      ... 73 more


      I'm using Seam 1.0.1.GA and JBoss 4.0.4.GA from the JEMS installer. My searching for other similar instances didn't turn didn't turn up ones like it. I hope it's OK to post this here.

      Thanks,
      David