Seam + Drools + cluster --> exception
alesj Sep 25, 2007 7:20 PMI get this exception when running Seam (from trunk) app on 2 node cluster:
> 00:32:41,671 ERROR [JBossCacheService] externalizeSession(): exception occurred externalizing session SessionBasedClusteredSession[id: 5XJ7uzVaRLgcoyC3gDwY1A**.node1 lastAccessedTime: 1190759558593 version: 1 lastOutdated: 0] > java.io.NotSerializableException: org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) > at java.util.ArrayList.writeObject(ArrayList.java:569) > 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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339) > at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) > at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1380) > 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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339) > at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) > at org.jboss.web.tomcat.service.session.SessionBasedClusteredSession.writeExternal(SessionBasedClusteredSession.java:175) > at org.jboss.web.tomcat.service.session.JBossCacheService.externalizeSession(JBossCacheService.java:1027) > at org.jboss.web.tomcat.service.session.JBossCacheService.putSession(JBossCacheService.java:316) > at org.jboss.web.tomcat.service.session.JBossCacheClusteredSession.processSessionRepl(JBossCacheClusteredSession.java:121) > at org.jboss.web.tomcat.service.session.JBossCacheManager.processSessionRepl(JBossCacheManager.java:1097) > at org.jboss.web.tomcat.service.session.JBossCacheManager.storeSession(JBossCacheManager.java:652) > at org.jboss.web.tomcat.service.session.InstantSnapshotManager.snapshot(InstantSnapshotManager.java:49) > at org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:98) > at org.jboss.web.tomcat.service.session.JvmRouteValve.invoke(JvmRouteValve.java:84) > at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) > at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) > at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) > at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437) > at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:381) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:595) > 00:33:48,484 ERROR [JBossCacheService] externalizeSession(): exception occurred externalizing session SessionBasedClusteredSession[id: 5XJ7uzVaRLgcoyC3gDwY1A**.node1 lastAccessedTime: 1190759561671 version: 2 lastOutdated: 0] > java.io.NotSerializableException: org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) > at java.util.ArrayList.writeObject(ArrayList.java:569) > 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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339) > at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347) > at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) > at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1380) > 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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917) > at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339) > at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290) > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302) > at org.jboss.web.tomcat.service.session.SessionBasedClusteredSession.writeExternal(SessionBasedClusteredSession.java:175) > at org.jboss.web.tomcat.service.session.JBossCacheService.externalizeSession(JBossCacheService.java:1027) > at org.jboss.web.tomcat.service.session.JBossCacheService.putSession(JBossCacheService.java:316) > at org.jboss.web.tomcat.service.session.JBossCacheClusteredSession.processSessionRepl(JBossCacheClusteredSession.java:121) > at org.jboss.web.tomcat.service.session.JBossCacheManager.processSessionRepl(JBossCacheManager.java:1097) > at org.jboss.web.tomcat.service.session.JBossCacheManager.storeSession(JBossCacheManager.java:652) > at org.jboss.web.tomcat.service.session.InstantSnapshotManager.snapshot(InstantSnapshotManager.java:49) > at org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:98) > at org.jboss.web.tomcat.service.session.JvmRouteValve.invoke(JvmRouteValve.java:84) > at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) > at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) > at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) > at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437) > at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:381) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:595)
The fix is supposed to be in updating Drools lib with current nightly build.
Just about to see if this is true. ;-)