Daniel,

I am chasing the exact same rabit.

I am onto it and I think I have a fix.

I will let the list know and release the new binary,  I am sorry it is
taking me so much time, but I do have a real job (;-).

So apologies for this "not serializable", and thanks for the report.

(btw your diagnostic is correct, the fix is simple)

regards

marc


> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Daniel G.
> Koulomzin
> Sent: Monday, July 24, 2000 5:35 PM
> To: [EMAIL PROTECTED]
> Subject: [jBoss-User] Questions re: Code in HomeProxy
>
>
> Hi everyone,
>
>     I'm still chasing that old NotSerializableException... and I've got
> some questions about the code.  BTW, let me know if this should be sent
> to a list besides jboss-user.
>
> I've added my comments/questions inside the method in question:
>
> public class HomeProxy extends GenericProxy {
>
>   //... lots of stuff skipped...
>
>   public Object invoke(Object proxy, Method m, Object[] args)
>       throws Throwable
>    {
>       // Normalize args to always be an array
>       // Isn't this a bug in the proxy call??
>       if (args == null)
>          args = new Object[0];
>
>       if (m.equals(toStr))
>       {
>          return name+" home";
>       }
>       else
>       {
>
>               // Delegate to container
>               // Optimize if calling another bean in same
> EJB-application
>
> --------------------
> What's optimize and isLocal()?  How do you set a bean as local or
> optimized?
> --------------------
>
>               if (optimize && isLocal())
>               {
>                  return container.invokeHome(m, args,
>
> tm != null ? tm.getTransaction() : null,
>
> null);
>               } else
>               {
>                  RemoteMethodInvocation rmi = new
> RemoteMethodInvocation(null, m, args);
>                  if (tm != null)
>                     rmi.setTransaction(tm.getTransaction());
> --------------------
> The next line is where my process dies.  Here's my diagnosis: on making
> a new MarshalledObject, the rmi object should get serialized.  Except
> the setTransaction method gives the rmi object a Transaction from the
> transaction manager.  This transaction (TransactionImpl, right?) is
> serializable.  However, this transaction has a reference back the the
> transaction manager, which is NOT serializable.   This is corroborated
> by the stack trace from the error I get, which I will provide after the
> code.
> --------------------
>                  return container.invokeHome(new MarshalledObject(rmi));
>
>               }
>       }
>    }
>
>
> The stack trace:
>
> java.lang.reflect.UndeclaredThrowableException:
> [MemberQuerier] java.io.NotSerializableException:
> org.jboss.tm.TxManager    <---- thar she blows!!!
> [MemberQuerier]         at
> java.io.IOException.<init>(IOException.java:49)
> [MemberQuerier]         at
> java.io.ObjectStreamException.<init>(ObjectStreamException.java:31)
> [MemberQuerier]         at
> java.io.NotSerializableException.<init>(NotSerializableException.java:35)
>
> [MemberQuerier]         at
> java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1154)
> [MemberQuerier]         at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java(Compiled
> Code))
> [MemberQuerier]         at
> java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.ja
> va(Compiled
> Code))
> [MemberQuerier]         at
> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:486)
>
> [MemberQuerier]         at
> java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1220)
> [MemberQuerier]         at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java(Compiled
> Code))
> [MemberQuerier]         at
> java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.ja
> va(Compiled
> Code))
> [MemberQuerier]         at
> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:486)
>
> [MemberQuerier]         at
> java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1220)
> [MemberQuerier]         at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java(Compiled
> Code))
> [MemberQuerier]         at
> java.rmi.MarshalledObject.<init>(MarshalledObject.java(Compiled Code))
> [MemberQuerier]         at
> org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:88)
>
> [MemberQuerier]         at $Proxy36.findByName(Unknown Source)
> [MemberQuerier]         at
> com.dbusa.ejb.querier.MemberQuerierBean.retrieveIdentity(MemberQue
> rierBean.java:51)
>
> [MemberQuerier]         at java.lang.reflect.Method.invoke(Native
> Method)
> [MemberQuerier]         at
> org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invok
> e(StatelessSessionContainer.java:443)
>
> [MemberQuerier]         at
> org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(S
tatelessSessionInstanceInterceptor.java:83)
>
> [MemberQuerier]         at
> org.jboss.ejb.plugins.TxInterceptor$RunInvoke.run(TxInterceptor.java:342)
>
> [MemberQuerier]         at
> org.jboss.ejb.plugins.TxInterceptor.runWithTransactions(TxIntercep
> tor.java:173)
>
> [MemberQuerier]         at
> org.jboss.ejb.plugins.TxInterceptor.invoke(TxInterceptor.java:98)
> [MemberQuerier]         at
> org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityIntercept
> or.java:93)
>
> [MemberQuerier]         at
> org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:154)
> [MemberQuerier]         at
> org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionCon
> tainer.java:262)
>
> [MemberQuerier]         at
> org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMP
> ContainerInvoker.java:172)
>
> [MemberQuerier]         at
> org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMP
> ContainerInvoker.java:156)
>
> [MemberQuerier]         at java.lang.reflect.Method.invoke(Native
> Method)
> [MemberQuerier]         at
> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:242)
> [MemberQuerier]         at
> sun.rmi.transport.Transport$1.run(Transport.java:155)
> [MemberQuerier]         at
> java.security.AccessController.doPrivileged(Native Method)
> [MemberQuerier]         at
> sun.rmi.transport.Transport.serviceCall(Transport.java:152)
> [MemberQuerier]         at
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:462)
>
> [MemberQuerier]         at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransp
> ort.java:662)
>
> [MemberQuerier]         at java.lang.Thread.run(Thread.java(Compiled
> Code))
>
> --
> Daniel G. Koulomzin
> Digital Media On Demand
> 244 Brighton Ave. 3rd Floor
> Allston MA 02134
>
>
>
>
>
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> Problems?:           [EMAIL PROTECTED]
>
>



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Problems?:           [EMAIL PROTECTED]

Reply via email to