Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4441819

Need to improve robustness against OutOfMemoryErrors during unmarshaling

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P5 P5
    • None
    • 1.4.0
    • other-libs
    • 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)

            eandersosunw Everett Anderson (Inactive)
            sbauersunw Stefan Bauer (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: