Bugs item #565237, was opened at 2002-06-06 02:31
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=376685&aid=565237&group_id=22866

Category: JBossServer
Group: v3.0 Rabbit Hole
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Stephen Coy (scoy)
>Assigned to: Scott M Stark (starksm)
Summary: StatefulHandleImpl not serializable

Initial Comment:
JBoss 3.0.0 final
MacOS X 10.1.5
Java 1.3.1

The class org.jboss.proxy.ejb.handle.StatefulHandleImpl is not 
properly serializable because (I think) it has an 
org.jboss.invocation.Invoker member. Some invoker 
implementations are serializable and some are not.

I have a stateful session bean containing a collection of data 
objects containing back pointers (via javax.ejb.Handle) to the 
session bean.

Passivation of the session bean fails while serializing the data 
objects:

2002-06-06 18:06:23,806 ERROR 
[org.jboss.logging.Log4jService$ThrowableListenerLoggingAdapter] 
unhandled throwable
java.rmi.ServerException: Could not passivate; nested exception 
is: 
        java.rmi.MarshalException: Invalid remote object
java.rmi.MarshalException: Invalid remote object
        at 
java.rmi.server.RemoteObject.writeObject(RemoteObject.java:153)
        at java.lang.reflect.Method.invoke(Native Method)
        at 
java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStrea
m.java:1864)
        at 
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.jav
a:1210)
        at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:
366)
        at 
org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.writeExtern
al(JRMPInvokerProxy.java:149)
        at 
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.jav
a:1180)
        at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:
366)
        at 
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStrea
m.java:1827)
        at 
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStrea
m.java:480)
        at 
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.jav
a:1214)
        at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:
366)
        at 
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStrea
m.java:1827)
        at 
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStrea
m.java:480)
        at 
com.whitesmiths.sacha.ejb.worklists.interfaces.WorklistElement.
writeObject(Unknown Source)
        at java.lang.reflect.Method.invoke(Native Method)
        at 
java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStrea
m.java:1864)
        at 
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.jav
a:1210)
        at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:
366)
        at 
java.io.ObjectOutputStream.outputArray(ObjectOutputStream.java:
1098)
        at 
java.io.ObjectOutputStream.checkSubstitutableSpecialClasses(Ob
jectOutputStream.java:456)
        at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:
361)
        at 
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStrea
m.java:1827)
        at 
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStrea
m.java:480)
        at 
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.jav
a:1214)
        at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:
366)
        at 
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStrea
m.java:1827)
        at 
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStrea
m.java:480)
        at 
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.jav
a:1214)
        at 
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:
366)
        at 
org.jboss.ejb.plugins.StatefulSessionFilePersistenceManager.pas
sivateSession(StatefulSessionFilePersistenceManager.java:288)
        at 
org.jboss.ejb.plugins.StatefulSessionInstanceCache.passivate(Sta
tefulSessionInstanceCache.java:78)
        at 
org.jboss.ejb.plugins.AbstractInstanceCache$1.execute(AbstractIn
stanceCache.java:615)
        at 
org.jboss.util.WorkerQueue$QueueLoop.run(WorkerQueue.java:20
6)
        at java.lang.Thread.run(Thread.java:496)
2002-06-06 18:06:39,260 DEBUG 
[org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] Resized 
cache for bean Priv: old capacity = 1000000, new capacity = 50
2002-06-06 18:06:59,049 DEBUG 
[org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] Resized 
cache for bean GSMServiceFacade: old capacity = 1000000, new 
capacity = 50
2002-06-06 18:07:00,982 DEBUG 
[org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] Resized 
cache for bean NumberStatus: old capacity = 1000000, new 
capacity = 50
2002-06-06 18:07:02,759 DEBUG 
[org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] Resized 
cache for bean GSMService: old capacity = 1000000, new 
capacity = 50
2002-06-06 18:07:11,227 DEBUG 
[org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] Resized 
cache for bean Numbers: old capacity = 1000000, new capacity = 
50
2002-06-06 18:07:35,111 DEBUG 
[org.jboss.resource.connectionmanager.IdleRemover] run: 
IdleRemover notifying pools, interval: 450000


----------------------------------------------------------------------

>Comment By: Scott M Stark (starksm)
Date: 2002-06-14 19:08

Message:
Logged In: YES 
user_id=175228

The custom session object streams needed to handle remote 
objects other than ejb interfaces.

----------------------------------------------------------------------

Comment By: Stephen Coy (scoy)
Date: 2002-06-06 02:40

Message:
Logged In: YES 
user_id=463096

I've done some more debugging.

At serialisation time, the StatefulHandleImpl invoker is an instance of 
org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy, which is 
Externalizable and should be OK. However, it is proxying an instance of 
org.jboss.invocation.jrmp.server.JRMPInvoker which is *not* serializable.



----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=376685&aid=565237&group_id=22866

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas - 
http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to