JDK-4452578 : RI hangs when a return object is not serializable.
Type:Bug
Component:other-libs
Sub-Component:corba:orb
Affected Version:1.3.0
Priority:P2
Status:Closed
Resolution:Fixed
OS:solaris_8
CPU:sparc
Submitted:2001-05-01
Updated:2008-01-14
Resolved:2008-01-14
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
NOTE: Sanjeev agree and reproduces the bug.
Test:
------
<sqe-workspace>/test/security/runAs
Just run the test. The RI main thread die and the client hangs.
Comments
CONVERTED DATA
BugTraq+ Release Management Values
COMMIT TO FIX:
merlin-beta2
FIXED IN:
merlin
INTEGRATED IN:
merlin-beta2
14-06-2004
EVALUATION
The Tie throws an UnknownException containing the ClassCastException
because the return object is not Serializable.
After doing some debugging, it seems like the server successfully sends
a reply message containing the UnknownException, but the client is still hanging because it is expecting some more data ? The client stack trace is below.
Perhaps this is some error in the IIOP layer while marshaling the exception back.
"DatabaseProxy_TableReadWrite" daemon prio=5 tid=0x179110 nid=0x11 waiting on monitor [0xf4380000..0xf43819e0]
at java.lang.Object.wait(Native Method)
- waiting on <f4db1fc8> (a com.sun.corba.ee.internal.iiop.BufferQueue)
at java.lang.Object.wait(Object.java:420)
at com.sun.corba.ee.internal.iiop.BufferManagerReadStream.underflow(BufferManagerReadStream.java:65)
- locked <f4db1fc8> (a com.sun.corba.ee.internal.iiop.BufferQueue)
at com.sun.corba.ee.internal.iiop.CDRInputStream_1_1.grow(CDRInputStream_1_1.java:76)
at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_octet_array(CDRInputStream_1_0.java:568)
at com.sun.corba.ee.internal.iiop.CDRInputStream.read_octet_array(CDRInputStream.java:209)
at com.sun.corba.ee.internal.core.UnknownServiceContext.<init>(UnknownServiceContext.java:31)
at com.sun.corba.ee.internal.core.ServiceContexts.<init>(ServiceContexts.java:103)
at com.sun.corba.ee.internal.iiop.messages.ReplyMessage_1_2.read(ReplyMessage_1_2.java:119)
at com.sun.corba.ee.internal.iiop.IIOPInputStream.unmarshalHeader(IIOPInputStream.java:126)
at com.sun.corba.ee.internal.iiop.IIOPConnection.getResponse(IIOPConnection.java:657)
at com.sun.corba.ee.internal.iiop.IIOPOutputStream.invoke(IIOPOutputStream.java:122)
at com.sun.corba.ee.internal.iiop.ClientRequestImpl.invoke(ClientRequestImpl.java:79)
at com.sun.corba.ee.internal.POA.GenericPOAClientSC.invoke(GenericPOAClientSC.java:94)
at com.sun.corba.ee.internal.POA.GenericPOAClientSC.invoke(GenericPOAClientSC.java:133)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:459)
at test.security.runAs.proxy._DatabaseProxy_Stub.processCachedResults(Unknown Source)
at test.security.runAs.DatabaseProxyClient.run(DatabaseProxyClient.java:196)
at java.lang.Thread.run(Thread.java:484)
harold.carr@Eng 2001-05-01
It's a bug.