[
https://issues.apache.org/jira/browse/AVRO-4139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated AVRO-4139:
---------------------------------
Labels: pull-request-available (was: )
> [Java] Arrays containing maps cannot be checked for equals anymore
> ------------------------------------------------------------------
>
> Key: AVRO-4139
> URL: https://issues.apache.org/jira/browse/AVRO-4139
> Project: Apache Avro
> Issue Type: Bug
> Components: java
> Affects Versions: 1.12.0
> Environment: Reproduction scenario:
> {code:java}
> Schema schema =
> Schema.createArray(Schema.createMap(Schema.create(Schema.Type.STRING)));
> GenericData.Array<Map<String, String>> a1 = new GenericData.Array<>(10,
> schema);
> GenericData.Array<Map<String, String>> a2 = new GenericData.Array<>(10,
> schema);
> a1.add(Map.of("a", "b"));
> a2.add(Map.of("a", "b"));
> assertEquals(a1, a2); {code}
> Reporter: Steven Aerts
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Since the introduction of AbstractArray in avro 1.12, it is not possible
> anymore to compare arrays which contain an object which contains a map.
> When you do so you get the following exception:
> {code:java}
> org.apache.avro.AvroRuntimeException: Can't compare maps! at
> org.apache.avro.generic.GenericData.compare(GenericData.java:1309)
> at org.apache.avro.generic.GenericData.compare(GenericData.java:1301)
> at org.apache.avro.generic.GenericData.compare(GenericData.java:1202)
> at
> org.apache.avro.generic.GenericData$AbstractArray.equals(GenericData.java:358)
> at
> org.junit.jupiter.api.AssertionUtils.objectsAreEqual(AssertionUtils.java:110)
> at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:181)
> at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
> at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
> {code}
> We have a PR which fixes this issue.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)