msgpack-java icon indicating copy to clipboard operation
msgpack-java copied to clipboard

Consuming a large amount of memory when unpacking huge Array and Map unexpectedly

Open napo0703 opened this issue 3 years ago • 0 comments

There is a problem of unexpectedly consuming a large amount of memory when unpacking huge Array and Map. For example, this code may causes an OutOfMemoryError.

    public static void unpackHugeArray()
            throws IOException
    {
        MessageBufferPacker packer = MessagePack.newDefaultBufferPacker();
        packer.packArrayHeader(2147483647);
        packer.close();

        byte[] packedData = packer.toByteArray();
        MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(packedData);
        unpacker.unpackValue();  // Caused by: java.lang.OutOfMemoryError
        unpacker.close();
    }

napo0703 avatar Jun 22 '22 15:06 napo0703