[
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