[jboss-remoting-issues] [JBoss JIRA] Commented: (JBREM-665) Need better error reporting of response marshalling errors

Ron Sigal (JIRA) jira-events at lists.jboss.org
Thu Mar 6 23:14:58 EST 2008


    [ http://jira.jboss.com/jira/browse/JBREM-665?page=comments#action_12401699 ] 
            
Ron Sigal commented on JBREM-665:
---------------------------------

This problem seems to have gone away.  Running the attached ejb3_exception_example, in which an EJB3 SLSB returns a non-serializable object, ressults in the following error message on the server:

04:16:39,953 ERROR [ServerThread] WorkerThread#0[127.0.0.1:60135] exception occurred during first invocation
java.io.NotSerializableException: org.jboss.ejb3.example.bean.UnserializableGeneratorBean$Unserializable
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
        at org.jboss.aop.joinpoint.InvocationResponse.writeExternal(InvocationResponse.java:101)
        at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1304)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1282)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1341)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
        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.ServerThread.versionedWrite(ServerThread.java:935)
        at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:717)
        at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:635)
        at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:459)
        at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:197)

and the following error message on the client:

     [java] Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
     [java] 	at $Proxy0.getUnserializableResult(Unknown Source)
     [java] 	at org.jboss.ejb3.example.client.Client.main(Client.java:48)
     [java] Caused by: org.jboss.remoting.InvocationFailureException: Unable to perform invocation
     [java] 	at org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker.java:133)
     [java] 	at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:851)
     [java] 	at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:157)
     [java] 	at org.jboss.remoting.Client.invoke(Client.java:1685)
     [java] 	at org.jboss.remoting.Client.invoke(Client.java:589)
     [java] 	at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:62)
     [java] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
     [java] 	at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:67)
     [java] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
     [java] 	at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53)
     [java] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
     [java] 	at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
     [java] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
     [java] 	at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107)
     [java] 	... 2 more
     [java] Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.jboss.ejb3.example.bean.UnserializableGeneratorBean$Unserializable
     [java] 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1303)
     [java] 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
     [java] 	at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:122)
     [java] 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753)
     [java] 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711)
     [java] 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
     [java] 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
     [java] 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
     [java] 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
     [java] 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
     [java] 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
     [java] 	at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObjectVersion2_2(JavaSerializationManager.java:233)
     [java] 	at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:133)
     [java] 	at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:123)
     [java] 	at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedRead(MicroSocketClientInvoker.java:1174)
     [java] 	at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:800)
     [java] 	at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:157)
     [java] 	at org.jboss.remoting.Client.invoke(Client.java:1685)
     [java] 	at org.jboss.remoting.Client.invoke(Client.java:589)
     [java] 	at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:62)
     [java] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
     [java] 	at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:67)
     [java] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
     [java] 	at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53)
     [java] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
     [java] 	at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
     [java] 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
     [java] 	at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107)
     [java] 	at $Proxy0.getUnserializableResult(Unknown Source)
     [java] 	at org.jboss.ejb3.example.client.Client.main(Client.java:48)
     [java] 	at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:74)
     [java] 	... 10 more
     [java] Caused by: java.io.NotSerializableException: org.jboss.ejb3.example.bean.UnserializableGeneratorBean$Unserializable
     [java] 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
     [java] 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
     [java] 	at org.jboss.aop.joinpoint.InvocationResponse.writeExternal(InvocationResponse.java:101)
     [java] 	at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1304)
     [java] 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1282)
     [java] 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
     [java] 	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
     [java] 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1341)
     [java] 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
     [java] 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
     [java] 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
     [java] 	at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.sendObjectVersion2_2(JavaSerializationManager.java:120)
     [java] 	at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.sendObject(JavaSerializationManager.java:95)
     [java] 	at org.jboss.remoting.marshal.serializable.SerializableMarshaller.write(SerializableMarshaller.java:120)
     [java] 	at org.jboss.remoting.transport.socket.ServerThread.versionedWrite(ServerThread.java:935)
     [java] 	at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:717)
     [java] 	at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:635)
     [java] 	at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:459)
     [java] 	at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:197)


> Need better error reporting of response marshalling errors
> ----------------------------------------------------------
>
>                 Key: JBREM-665
>                 URL: http://jira.jboss.com/jira/browse/JBREM-665
>             Project: JBoss Remoting
>          Issue Type: Feature Request
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 2.2.0.Alpha4
>            Reporter: Scott M Stark
>         Assigned To: Ron Sigal
>            Priority: Critical
>             Fix For: 2.4.0.CR1 (Pinto)
>
>         Attachments: ejb3_exception_example.zip
>
>
> A failure to write a response on the server such as:
> 21:03:32,935 ERROR [ServerThread] failed to process invocation.
> java.io.NotSerializableException: java.util.HashMap$KeySet
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
>         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
>         at org.jboss.aop.joinpoint.InvocationResponse.writeExternal(InvocationResponse.java:101)
>         at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1310)
>         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1288)
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
>         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.sendObject(JavaSerializationManager.java:85)
>         at org.jboss.remoting.marshal.serializable.SerializableMarshaller.write(SerializableMarshaller.java:84)
>         at org.jboss.invocation.unified.marshall.InvocationMarshaller.write(InvocationMarshaller.java:66)
>         at org.jboss.remoting.transport.socket.ServerThread.versionedWrite(ServerThread.java:491)
>         at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:470)
>         at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:527)
>         at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:261)
> results in this uninformative exception on the client:
> java.rmi.MarshalException: Failed to communicate.  Problem during marshalling/unmarshalling; nested exception is: 
> ...
> Caused by: java.net.SocketException
> 	at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:352)
> 	at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:125)
> 	at org.jboss.remoting.Client.invoke(Client.java:589)
> 	at org.jboss.remoting.Client.invoke(Client.java:581)
> 	at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:62)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.aspects.remoting.MergeMetaDataInterceptor.invoke(MergeMetaDataInterceptor.java:74)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at AOPProxy$1.getTemplateNames(AOPProxy$1.java)
> 	at org.jboss.test.profileservice.test.ProfileServiceUnitTestCase.testAddDataSource(ProfileServiceUnitTestCase.java:72)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at junit.framework.TestCase.runTest(TestCase.java:154)
> 	at junit.framework.TestCase.runBare(TestCase.java:127)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:118)
> 	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
> 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> 	at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:74)
> 	... 23 more
> Need to look at how this can be improved. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-remoting-issues mailing list