You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Jari Louvem (Jira)" <ji...@apache.org> on 2024/04/24 11:53:00 UTC

[jira] [Created] (AVRO-3980) Error to deserialize field of type Long after upgrade from 1.11.1 to 1.11.3

Jari Louvem created AVRO-3980:
---------------------------------

             Summary: Error to deserialize field of type Long after upgrade from 1.11.1 to 1.11.3
                 Key: AVRO-3980
                 URL: https://issues.apache.org/jira/browse/AVRO-3980
             Project: Apache Avro
          Issue Type: Bug
          Components: java, logical types
    Affects Versions: 1.11.3
            Reporter: Jari Louvem


After we upgraded Avro library and avro-maven-plugin from version 1.11.1 to 1.11.3 and
we started to get the error "cannot read collections larger than 2147483639 items in java library".
 
This error is generated by SystemLimitException.checkMaxCollectionLength.
The data that we are trying to deserialize (using avro 1.11.3) was serealized using avro 1.11.1.

The object that we are trying to deserealize is:
{
    "name": "statuses",
    "type": {
        "type": "array",
        "items": "com.entity.avro.StatusAvro"
    }
}

{
    "name": "statuses",
    "type": {
        "type": "array",
        "items": {
            "name": "StatusAvro",
            "type": "record",
            "namespace": "com.entity.avro",
            "fields": [
                {
                    "name": "status",
                    "type": [
                        "null",
                        "string"
                    ]
                },
                {
                    "name": "reason",
                    "type": [
                        "null",
                        "string"
                    ]
                },
                {
                    "name": "validFor",
                    "type": "com.entity.avro.ValidForAvro"
                }
            ]
        }
    }
}

{
    "name": "validFor",
    "type": {
        "name": "ValidForAvro",
        "type": "record",
        "namespace": "com.entity.avro",
        "fields": [
            {
                "name": "start",
                "type": "long"
            },
            {
                "name": "end",
                "type": "long"
            }
        ]
    }
}

This is an example of the objects listed above:
"statuses": [
    {
        "status": "INIT",
        "reason": "Final_New_Reason",
        "validFor": {
            "start": "2020-01-30T11:45:00.839Z",
            "end": "2030-01-23T06:58:21.563Z"
        }
    }
]

The problem is that the array has only one item as shown above, so why is it throwing an error of the collection is too long?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)