[
https://issues.apache.org/jira/browse/KAFKA-3804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Randall Hauch resolved KAFKA-3804.
----------------------------------
Resolution: Duplicate
> Kafka Connect's Struct objects rehydrated with JSON converter are not equal
> ---------------------------------------------------------------------------
>
> Key: KAFKA-3804
> URL: https://issues.apache.org/jira/browse/KAFKA-3804
> Project: Kafka
> Issue Type: Bug
> Components: KafkaConnect
> Affects Versions: 0.10.0.0
> Reporter: Randall Hauch
> Assignee: Ewen Cheslack-Postava
>
> The {{equals(...)}} method on {{org.apache.kafka.connect.data.Struct}}
> currently uses {{Arrays.equals(value,o.value)}} to compare the array of field
> values to that of another. However, this only works when the elements in
> those arrays (e.g., the field values) are primitives or objects, but fails to
> work when they are arrays such as {{byte[]}}.
> Interestingly, the {{StructTest}} unit test populates all fields of type
> {{Schema.BYTES_SCHEMA}} using {{ByteBuffer}} object, which means the current
> logic works fine. However, the JSON converter rehydrates the {{Struct}}
> objects using {{byte[]}}, whereas the Avro converter rehydrates using
> {{ByteBuffer}}. This means that when a {{Struct}} containing a
> {{Schema.BYTES_SCHEMA}} or {{Schema.OPTIONAL_BYTES_SCHEMA}} field is
> serialized and then deserialized with the JSON converter, the rehydrated
> object will not be deemed "equal" to the original.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)