2 Replies Latest reply on Sep 7, 2007 5:52 AM by pmuir

    java.lang.NoClassDefFoundError: org.drools.WorkingMemory and

    dkane

      Hello

      After 20 minutes of inactivity (I guess, session is being serialized after that), JBoss throws the following exception to console.

      The application is quite simple Seam one, containng one session-scoped component. No Drools are used explicitly, no jBPM. The only specific feature is Seam Remoting , but error appears even when no Remoting calls were made.

      Any idea what may cause that ?

      Thanks.

      18:57:18,968 ERROR [TerminalAdmAction] problem passivation thread
      javax.ejb.EJBException: Could not passivate; failed to save state
       at org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.passivateSession(StatefulSessionFilePersistenceManager.java:406)
       at org.jboss.ejb3.cache.simple.SimpleStatefulCache.passivate(SimpleStatefulCache.java:301)
       at org.jboss.ejb3.cache.simple.SimpleStatefulCache$SessionTimeoutTask.run(SimpleStatefulCache.java:209)
      Caused by:
      java.io.IOException
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:129)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.ArrayPersister.saveObjectArray(ArrayPersister.java:110)
       at org.jboss.serial.persister.ArrayPersister.writeData(ArrayPersister.java:101)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.ArrayPersister.saveObjectArray(ArrayPersister.java:110)
       at org.jboss.serial.persister.ArrayPersister.writeData(ArrayPersister.java:101)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.io.JBossObjectOutputStream.writeObjectOverride(JBossObjectOutputStream.java:181)
       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:320)
       at org.jboss.serial.io.MarshalledObject.<init>(MarshalledObject.java:51)
       at org.jboss.ejb3.stateful.StatefulBeanContext.writeExternal(StatefulBeanContext.java:842)
       at org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.io.JBossObjectOutputStream.writeObjectOverride(JBossObjectOutputStream.java:181)
       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:320)
       at org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.passivateSession(StatefulSessionFilePersistenceManager.java:390)
       ... 2 more
      Caused by:
      java.lang.reflect.InvocationTargetException
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:615)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
       ... 99 more
      Caused by:
      java.io.IOException
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:129)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
       at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
       at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:320)
       at EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArrayList.writeObject(CopyOnWriteArrayList.java:772)
       ... 104 more
      Caused by:
      java.lang.reflect.InvocationTargetException
       at sun.reflect.GeneratedMethodAccessor382.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:615)
       at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
       ... 116 more
      Caused by:
      java.lang.NoClassDefFoundError: org.drools.WorkingMemory
       at java.lang.Class.getDeclaredFieldsImpl(Native Method)
       at java.lang.Class.getDeclaredFields(Class.java:505)
       at org.jboss.serial.classmetamodel.ClassMetaDataSlot.exploreFields(ClassMetaDataSlot.java:89)
       at org.jboss.serial.classmetamodel.ClassMetaDataSlot.<init>(ClassMetaDataSlot.java:58)
       at org.jboss.serial.classmetamodel.ClassMetaData.exploreSlots(ClassMetaData.java:411)
       at org.jboss.serial.classmetamodel.ClassMetaData.<init>(ClassMetaData.java:138)
       at org.jboss.serial.classmetamodel.ClassMetamodelFactory.getClassMetaData(ClassMetamodelFactory.java:350)
       at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:168)
       at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
       at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:320)
       at java.util.Hashtable.writeObject(Hashtable.java:793)
       ... 120 more


        • 1. Re: java.lang.NoClassDefFoundError: org.drools.WorkingMemory
          dkane

          The problem is critical, because after this exception application stops to function : button that invokes component method simply does not do that anymore.
          Please post at least any thoughts if not solutions. Does any library use these "Drools" implicitly ? Seam core, Seam remoting, JBoss EJB3 ? How is it possible that application is looking for org.drools.WorkingMemory class upon passivation ?
          In order to exclude the influence of previously deployed applications, I installed another instance of JBoss from scratch. The same effect. Tried JBoss 4.0.5 and 4.2.1. Seam version is 1.2.1GA.

          • 2. Re: java.lang.NoClassDefFoundError: org.drools.WorkingMemory
            pmuir

            Use your debugger to find out which field is being serialized and can't be.