-
Bug
-
Resolution: Won't Fix
-
P4
-
None
-
6u26
-
x86
-
linux_redhat_5.0
FULL PRODUCT VERSION :
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux xyz 2.6.18-238.5.1.el5 #1 SMP Mon Feb 21 05:53:18 EST 2011 i686 i686 i386 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
Under certain (unknown) circumstances a stack overflow will occur in the CORBA code base:
Caused by: java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at java.net.Socket.getOutputStream(Socket.java:836)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.write(SocketOrChannelConnectionImpl.java:724)
at com.sun.corba.se.impl.encoding.CDROutputObject.writeTo(CDROutputObject.java:174)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.sendWithoutLock(SocketOrChannelConnectionImpl.java:1016)
at com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendFragment(BufferManagerWriteStream.java:90)
at com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendMessage(BufferManagerWriteStream.java:104)
at com.sun.corba.se.impl.encoding.CDROutputObject.finishSendingMessage(CDROutputObject.java:144)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.finishSendingRequest(CorbaMessageMediatorImpl.java:247)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete1(CorbaClientRequestDispatcherImpl.java:355)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:336)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:213)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:221)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:221)
.....
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:221)
A review of the CORBA code indicates problems in the method: com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a. When a RemarshalException is caught, the is_a method is called again (to try again): hence continuous RemarshalExceptions will eventually cause the stack to overflow. Some way of limiting the number of recursive calls to this method, or throwing a different exception is needed.
REPRODUCIBILITY :
This bug can be reproduced often.
---------- BEGIN SOURCE ----------
The code calling CORBA belongs to the Oracle Weblogic Server code base.
---------- END SOURCE ----------
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux xyz 2.6.18-238.5.1.el5 #1 SMP Mon Feb 21 05:53:18 EST 2011 i686 i686 i386 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
Under certain (unknown) circumstances a stack overflow will occur in the CORBA code base:
Caused by: java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at java.net.Socket.getOutputStream(Socket.java:836)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.write(SocketOrChannelConnectionImpl.java:724)
at com.sun.corba.se.impl.encoding.CDROutputObject.writeTo(CDROutputObject.java:174)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.sendWithoutLock(SocketOrChannelConnectionImpl.java:1016)
at com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendFragment(BufferManagerWriteStream.java:90)
at com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendMessage(BufferManagerWriteStream.java:104)
at com.sun.corba.se.impl.encoding.CDROutputObject.finishSendingMessage(CDROutputObject.java:144)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.finishSendingRequest(CorbaMessageMediatorImpl.java:247)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete1(CorbaClientRequestDispatcherImpl.java:355)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:336)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:213)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:221)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:221)
.....
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:221)
A review of the CORBA code indicates problems in the method: com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.is_a. When a RemarshalException is caught, the is_a method is called again (to try again): hence continuous RemarshalExceptions will eventually cause the stack to overflow. Some way of limiting the number of recursive calls to this method, or throwing a different exception is needed.
REPRODUCIBILITY :
This bug can be reproduced often.
---------- BEGIN SOURCE ----------
The code calling CORBA belongs to the Oracle Weblogic Server code base.
---------- END SOURCE ----------