[ 
https://issues.apache.org/jira/browse/AVRO-3980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17846961#comment-17846961
 ] 

Jari Louvem commented on AVRO-3980:
-----------------------------------

[~opwvhk] Thank you for your answer.

My doubt is about the existing encoded data. In case we change the method to 
encode/decode, it will break the compatibility with these already encoded 
(using BinaryEncoder) data as it won't be decoded by this BinaryMessageDecoder.

Is there a way to workaround this issue?

> 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
>            Priority: Critical
>
> 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)

Reply via email to