b2-sdk-java icon indicating copy to clipboard operation
b2-sdk-java copied to clipboard

Avoid asking for arrays that are too big.

Open certainmagic opened this issue 5 years ago • 0 comments

If someone tries to serialize a json structure that's too close to Integer.MAX_VALUE bytes, ByteArrayOutputStream will fail while trying to grow its array. The failure is particularly annoying because it's an OutOfMemoryError and it will kill the JVM. The exception's message is "Requested array size exceeds VM limit".

It'd be nice if we threw a B2JsonException instead of killing the JVM. ;)

I know this can happen during serialization. We should also look for other places we use a ByteArrayOutputStream and places we might allocate an array more directly.

certainmagic avatar Dec 01 '20 18:12 certainmagic