[ 
https://issues.apache.org/jira/browse/AVRO-2943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Frank Grimes updated AVRO-2943:
-------------------------------
    Description: 
The following test I locally added to org.apache.avro.generic.TestGenericData 
on master demonstrates the problem:
{code:java}
  @Test
  public void testMapKeyEquals() {
    Schema mapSchema = new Schema.Parser().parse("{\"type\": \"map\", 
\"values\": \"string\"}");
    Field myMapField = new Field("my_map", Schema.createMap(mapSchema), null, 
null);
    Schema schema = Schema.createRecord("my_record", "doc", "mytest", false);
    schema.setFields(Arrays.asList(myMapField));

    GenericRecord r0 = new GenericData.Record(schema);
    GenericRecord r1 = new GenericData.Record(schema);

    HashMap<CharSequence, String> pair1 = new HashMap<>();
    pair1.put("keyOne", "valueOne");
    r0.put("my_map", pair1);

    HashMap<CharSequence, String> pair2 = new HashMap<>();
    pair2.put(new Utf8("keyOne"), "valueOne");
    r1.put("my_map", pair2);

    assertEquals(r0, r1);
    assertEquals(r1, r0);
  }
{code}

  was:
The following test I locally added to `org.apache.avro.generic.TestGenericData` 
on master demonstrates the problem:
{code:java}
  @Test
  public void testMapKeyEquals() {
    Schema mapSchema = new Schema.Parser().parse("{\"type\": \"map\", 
\"values\": \"string\"}");
    Field myMapField = new Field("my_map", Schema.createMap(mapSchema), null, 
null);
    Schema schema = Schema.createRecord("my_record", "doc", "mytest", false);
    schema.setFields(Arrays.asList(myMapField));

    GenericRecord r0 = new GenericData.Record(schema);
    GenericRecord r1 = new GenericData.Record(schema);

    HashMap<CharSequence, String> pair1 = new HashMap<>();
    pair1.put("keyOne", "valueOne");
    r0.put("my_map", pair1);

    HashMap<CharSequence, String> pair2 = new HashMap<>();
    pair2.put(new Utf8("keyOne"), "valueOne");
    r1.put("my_map", pair2);

    assertEquals(r0, r1);
    assertEquals(r1, r0);
  }
{code}


> Map comparison between Utf8 and String keys fails
> -------------------------------------------------
>
>                 Key: AVRO-2943
>                 URL: https://issues.apache.org/jira/browse/AVRO-2943
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.10.0
>         Environment: Mac OS Catalina 10.15.6
>  
> openjdk version "1.8.0_265"
> OpenJDK Runtime Environment Corretto-8.265.01.1 (build 1.8.0_265-b01)
> OpenJDK 64-Bit Server VM Corretto-8.265.01.1 (build 25.265-b01, mixed mode)
>            Reporter: Frank Grimes
>            Priority: Major
>
> The following test I locally added to org.apache.avro.generic.TestGenericData 
> on master demonstrates the problem:
> {code:java}
>   @Test
>   public void testMapKeyEquals() {
>     Schema mapSchema = new Schema.Parser().parse("{\"type\": \"map\", 
> \"values\": \"string\"}");
>     Field myMapField = new Field("my_map", Schema.createMap(mapSchema), null, 
> null);
>     Schema schema = Schema.createRecord("my_record", "doc", "mytest", false);
>     schema.setFields(Arrays.asList(myMapField));
>     GenericRecord r0 = new GenericData.Record(schema);
>     GenericRecord r1 = new GenericData.Record(schema);
>     HashMap<CharSequence, String> pair1 = new HashMap<>();
>     pair1.put("keyOne", "valueOne");
>     r0.put("my_map", pair1);
>     HashMap<CharSequence, String> pair2 = new HashMap<>();
>     pair2.put(new Utf8("keyOne"), "valueOne");
>     r1.put("my_map", pair2);
>     assertEquals(r0, r1);
>     assertEquals(r1, r0);
>   }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to