Details
Description
When using corba to communicate with another app server, sometimes we see an exception like:
org.omg.CORBA.MARSHAL: java.lang.ClassCastException thrown while marshaling the reply: null vmcid: 0x0 minor code: 0 completed: Yes
at org.openejb.corba.CorbaApplicationServer.getEJBObject(CorbaApplicationServer.java:72)
at org.openejb.server.ServerFederation.getEJBObject(ServerFederation.java:119)
at org.openejb.proxy.ReplacementStrategy$1.writeReplace(ReplacementStrategy.java:81)
at org.openejb.proxy.SerializationHandler.writeReplace(SerializationHandler.java:101)
at org.openejb.proxy.EJBObjectImpl.writeReplace(EJBObjectImpl.java:115)
at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:896)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1011)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at org.openejb.proxy.SerializationHandler.copyObj(SerializationHandler.java:113)
at org.openejb.corba.util.Util.writeObject(Util.java:453)
at org.openejb.corba.StandardServant._invoke(StandardServant.java:342)
at com.sun.corba.se.internal.POA.GenericPOAServerSC.dispatchToServant(GenericPOAServerSC.java:517)
at com.sun.corba.se.internal.POA.GenericPOAServerSC.internalDispatch(GenericPOAServerSC.java:207)
at com.sun.corba.se.internal.POA.GenericPOAServerSC.dispatch(GenericPOAServerSC.java:109)
at com.sun.corba.se.internal.iiop.ORB.process(ORB.java:252)
at com.sun.corba.se.internal.iiop.RequestProcessor.process(RequestProcessor.java:81)
at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run(ThreadPool.java:106)
After 2 days of tracing through the corba code, I discoverd this was due to an NPE in ServiceContextInterceptor due to assuming RequestInfoExt has a connection. I suspect that somehow local optimization got turned on thus leading to no connections, hence NPE's