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.java(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.java(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(MemberQuerierBean.java:51)

[MemberQuerier]         at java.lang.reflect.Method.invoke(Native
Method)
[MemberQuerier]         at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:443)

[MemberQuerier]         at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:83)

[MemberQuerier]         at
org.jboss.ejb.plugins.TxInterceptor$RunInvoke.run(TxInterceptor.java:342)

[MemberQuerier]         at
org.jboss.ejb.plugins.TxInterceptor.runWithTransactions(TxInterceptor.java:173)

[MemberQuerier]         at
org.jboss.ejb.plugins.TxInterceptor.invoke(TxInterceptor.java:98)
[MemberQuerier]         at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:93)

[MemberQuerier]         at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:154)
[MemberQuerier]         at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:262)

[MemberQuerier]         at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:172)

[MemberQuerier]         at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.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(TCPTransport.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]

Reply via email to