Skip to content

When doing a single row query for a very large record, the runtime fails in com.sforce.ws.parser.MXParser at line 2937 with a negative integer error #337

Description

@dmerrett-platinum7

Hi, when the buffer needs to be expanded, the code (at line 2936 & 2937) says:

final int newSize = 2 * buf.length;
final char newBuf[] = new char[ newSize ];

However there are no checks on the newSize fitting in the integer space and the system crashes. Could you please cap the newSize to 2^31 -1 (2,147,483,647) as the record size is under that?

This is caused by a very large Event File Event record with a field size of 1,629,674,709. This will be bigger in the SOQL response as it is a BLOB. Is there a way to access this without the system failing?

The stack dump is here:
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions