[jboss-dev] EJB3 remote invocation broken in AS50

Thomas Diesler thomas.diesler at jboss.com
Wed Jun 13 02:52:45 EDT 2007


Its fixed - thanks

On Tue, 2007-06-12 at 20:51 -0400, Ron Sigal wrote:
> Hi,
> 
> Sorry I'm late to junp in.  Brian, Anil, and Dimitris are all correct.  
> When I was working on compatibility between JBAS 4.2 and earlier 
> versions, I had to add a version byte to 
> org.jboss.remoting.marshal.serializable.SerializableMarshaller.write() 
> and SerializableUnMarshaller.read().  The unified invoker uses 
> subclasses org.jboss.invocation.unified.marshall.InvocationMarshaller 
> and InvocationUnMarshaller, which didn't have the overloaded versions of 
> read() and write() with the version byte.  What is happening is that 
> InvocationMarshaller, which unwraps the nonserializable 
> org.jboss.invocation.Invocation and creates from it a serializable 
> object, gets bypassed, and SerializableMarshaller.write() ends up with 
> the original Invocation. 
> 
> The fix is just to add overloaded versions of read() and write() to 
> InvocationMarshaller and InvocationUnMarshaller, which I did.  The 
> problem is that I was working on the 4.2 branch and didn't think to make 
> the same correction to trunk.  I've now done that.  If the problem 
> doesn't go away, let me know.
> 
> -Ron
> 
> Thomas Diesler wrote:
> > Generally all EJB3 remote invocation seems to be broken.
> >
> > java.rmi.MarshalException: Failed to communicate.  Problem during
> > marshalling/unmarshalling; nested exception is: 
> > 	java.io.NotSerializableException: org.jboss.invocation.Invocation
> > 	at org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker.java:122)
> > 	at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:644)
> > 	at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
> > 	at org.jboss.remoting.Client.invoke(Client.java:1550)
> > 	at org.jboss.remoting.Client.invoke(Client.java:530)
> > 	at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.invoke(UnifiedInvokerProxy.java:161)
> > 	at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:244)
> > 	at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:181)
> > 	at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
> > 	at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:86)
> > 	at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:184)
> > 	at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:101)
> > 	at $Proxy2.create(Unknown Source)
> > 	at org.jboss.test.ws.jaxrpc.serviceref.ServiceRefEJBTestCase.testEJBClient(ServiceRefEJBTestCase.java:80)
> > 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> > 	at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> > 	at junit.extensions.TestSetup.run(TestSetup.java:23)
> > Caused by: java.io.NotSerializableException: org.jboss.invocation.Invocation
> > 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
> > 	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 org.jboss.remoting.serialization.impl.java.JavaSerializationManager.sendObjectVersion2_2(JavaSerializationManager.java:120)
> > 	at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.sendObject(JavaSerializationManager.java:95)
> > 	at org.jboss.remoting.marshal.serializable.SerializableMarshaller.write(SerializableMarshaller.java:120)
> > 	at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedWrite(MicroSocketClientInvoker.java:967)
> > 	at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:557)
> > 	... 31 more
> >
> > On Tue, 2007-06-12 at 12:38 +0200, Thomas Diesler wrote:
> >   
> >> Hi Carlo,
> >>
> >> there seem to be basic EJB3 security problems
> >>
> >> http://jbws.dyndns.org:8280/hudson/job/Core-Tests-AS-5.0/26/testReport/org.jboss.test.ws.jaxrpc.samples.secureejb/SecureEJBTestCase/testBasicSecuredSLSB/
> >>
> >> This is a remote client trying to connect to an unsecured SLSB.
> >>
> >> -thomas
> >>
> >>     
> _______________________________________________
> jboss-development mailing list
> jboss-development at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-development
-- 
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Thomas Diesler
Web Service Lead
JBoss, a division of Red Hat
xxxxxxxxxxxxxxxxxxxxxxxxxxxx





More information about the jboss-development mailing list