-
Bug
-
Resolution: Won't Fix
-
P5
-
None
-
1.4.0
-
None
-
generic
-
generic
I'm observing an OutOfMemoryError when accessing the ORBacus IFR with a corbaloc:iiop:localhost:1070/DefaultRepository. See stack trace below. The value of len in IdEncapsulationBase.readOctets is 778530159 (>700MB).
We should catch unmarshaling errors like this one returning a MARSHAL instead of giving up with OutOfMemoryError. There are possibly more places like this in the stream unmarshaling code.
at com.sun.corba.ee.internal.ior.IdEncapsulationBase.readOctets(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/IdEncapsulationBase.java:74)
at com.sun.corba.ee.internal.ior.GenericIdEncapsulation.<init>(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/GenericIdEncapsulation.java:31)
at com.sun.corba.ee.internal.ior.GenericTaggedProfile.<init>(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/GenericTaggedProfile.java:17)
at com.sun.corba.ee.internal.ior.TaggedProfileFactoryFinder.create(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/TaggedProfileFactoryFinder.java:48)
at com.sun.corba.ee.internal.ior.IdEncapsulationContainerBase.readIdEncapsulationSequence(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/IdEncapsulationContainerBase.java:37)
at com.sun.corba.ee.internal.ior.IOR.<init>(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/IOR.java:142)
at com.sun.corba.ee.internal.core.IOR.<init>(../../../../../../src/share/classes/com/sun/corba/ee/internal/core/IOR.java:219)
at com.sun.corba.ee.internal.iiop.messages.LocateReplyMessage_1_2.read(../../../../../../src/share/classes/com/sun/corba/ee/internal/iiop/messages/LocateReplyMessage_1_2.java:131)
at com.sun.corba.ee.internal.iiop.IIOPInputStream.unmarshalHeader(../../../../../../src/share/classes/com/sun/corba/ee/internal/iiop/IIOPInputStream.java:126)
at com.sun.corba.ee.internal.iiop.IIOPConnection.getResponse(../../../../../../src/share/classes/com/sun/corba/ee/internal/iiop/IIOPConnection.java:657)
at com.sun.corba.ee.internal.iiop.IIOPConnection.send(../../../../../../src/share/classes/com/sun/corba/ee/internal/iiop/IIOPConnection.java:742)
at com.sun.corba.ee.internal.corba.InitialNamingClient.locateObject(../../../../../../src/share/classes/com/sun/corba/ee/internal/corba/InitialNamingClient.java:771)
at com.sun.corba.ee.internal.corba.InitialNamingClient.getIORUsingHostInfo(../../../../../../src/share/classes/com/sun/corba/ee/internal/corba/InitialNamingClient.java:582)
at com.sun.corba.ee.internal.corba.InitialNamingClient.resolveCorbaloc(../../../../../../src/share/classes/com/sun/corba/ee/internal/corba/InitialNamingClient.java:558)
at com.sun.corba.ee.internal.corba.ORB.string_to_object(../../../../../../src/share/classes/com/sun/corba/ee/internal/corba/ORB.java:1928)
at Test.main(Test.java:57)
We should catch unmarshaling errors like this one returning a MARSHAL instead of giving up with OutOfMemoryError. There are possibly more places like this in the stream unmarshaling code.
at com.sun.corba.ee.internal.ior.IdEncapsulationBase.readOctets(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/IdEncapsulationBase.java:74)
at com.sun.corba.ee.internal.ior.GenericIdEncapsulation.<init>(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/GenericIdEncapsulation.java:31)
at com.sun.corba.ee.internal.ior.GenericTaggedProfile.<init>(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/GenericTaggedProfile.java:17)
at com.sun.corba.ee.internal.ior.TaggedProfileFactoryFinder.create(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/TaggedProfileFactoryFinder.java:48)
at com.sun.corba.ee.internal.ior.IdEncapsulationContainerBase.readIdEncapsulationSequence(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/IdEncapsulationContainerBase.java:37)
at com.sun.corba.ee.internal.ior.IOR.<init>(../../../../../../src/share/classes/com/sun/corba/ee/internal/ior/IOR.java:142)
at com.sun.corba.ee.internal.core.IOR.<init>(../../../../../../src/share/classes/com/sun/corba/ee/internal/core/IOR.java:219)
at com.sun.corba.ee.internal.iiop.messages.LocateReplyMessage_1_2.read(../../../../../../src/share/classes/com/sun/corba/ee/internal/iiop/messages/LocateReplyMessage_1_2.java:131)
at com.sun.corba.ee.internal.iiop.IIOPInputStream.unmarshalHeader(../../../../../../src/share/classes/com/sun/corba/ee/internal/iiop/IIOPInputStream.java:126)
at com.sun.corba.ee.internal.iiop.IIOPConnection.getResponse(../../../../../../src/share/classes/com/sun/corba/ee/internal/iiop/IIOPConnection.java:657)
at com.sun.corba.ee.internal.iiop.IIOPConnection.send(../../../../../../src/share/classes/com/sun/corba/ee/internal/iiop/IIOPConnection.java:742)
at com.sun.corba.ee.internal.corba.InitialNamingClient.locateObject(../../../../../../src/share/classes/com/sun/corba/ee/internal/corba/InitialNamingClient.java:771)
at com.sun.corba.ee.internal.corba.InitialNamingClient.getIORUsingHostInfo(../../../../../../src/share/classes/com/sun/corba/ee/internal/corba/InitialNamingClient.java:582)
at com.sun.corba.ee.internal.corba.InitialNamingClient.resolveCorbaloc(../../../../../../src/share/classes/com/sun/corba/ee/internal/corba/InitialNamingClient.java:558)
at com.sun.corba.ee.internal.corba.ORB.string_to_object(../../../../../../src/share/classes/com/sun/corba/ee/internal/corba/ORB.java:1928)
at Test.main(Test.java:57)
- relates to
-
JDK-4362895 ORB.string_to_object with keystring causes OutOfMemoryError on tnameserv
-
- Closed
-