[jira] [Created] (KAFKA-3055) JsonConverter mangles schema during serialization (fromConnectData)
Kishore Senji created KAFKA-3055: Summary: JsonConverter mangles schema during serialization (fromConnectData) Key: KAFKA-3055 URL: https://issues.apache.org/jira/browse/KAFKA-3055 Project: Kafka Issue Type: Bug Components: copycat Affects Versions: 0.9.0.0 Reporter: Kishore Senji Assignee: Ewen Cheslack-Postava Test case is here: https://github.com/ksenji/kafka-connect-test/tree/master/src/test/java/org/apache/kafka/connect/json If Caching is disabled, it behaves correctly and JsonConverterWithNoCacheTest runs successfully. Otherwise the test JsonConverterTest fails. The reason is that the JsonConverter has a bug where it mangles the schema as it assigns all String fields with the same name (and similar for all Int32 fields) This is how the schema & payload gets serialized for the Person Struct (with caching disabled): {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"firstName"},{"type":"string","optional":false,"field":"lastName"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"age"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} where as when caching is enabled the same Struct gets serialized as (with caching enabled) : {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"weightInKgs"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} As we can see all String fields became "email" and all int32 fields became "weightInKgs". -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (KAFKA-3055) JsonConverter mangles schema during serialization (fromConnectData)
[ https://issues.apache.org/jira/browse/KAFKA-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kishore Senji updated KAFKA-3055: - Description: Test case is here: https://github.com/ksenji/kafka-connect-test/tree/master/src/test/java/org/apache/kafka/connect/json If Caching is disabled, it behaves correctly and JsonConverterWithNoCacheTest runs successfully. Otherwise the test JsonConverterTest fails. The reason is that the JsonConverter has a bug where it mangles the schema as it assigns all String fields with the same name (and similar for all Int32 fields) This is how the schema & payload gets serialized for the Person Struct (with caching disabled): {code} {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"firstName"},{"type":"string","optional":false,"field":"lastName"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"age"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} {code} where as when caching is enabled the same Struct gets serialized as (with caching enabled) : {code} {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"weightInKgs"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} {code} As we can see all String fields became "email" and all int32 fields became "weightInKgs". was: Test case is here: https://github.com/ksenji/kafka-connect-test/tree/master/src/test/java/org/apache/kafka/connect/json If Caching is disabled, it behaves correctly and JsonConverterWithNoCacheTest runs successfully. Otherwise the test JsonConverterTest fails. The reason is that the JsonConverter has a bug where it mangles the schema as it assigns all String fields with the same name (and similar for all Int32 fields) This is how the schema & payload gets serialized for the Person Struct (with caching disabled): {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"firstName"},{"type":"string","optional":false,"field":"lastName"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"age"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} where as when caching is enabled the same Struct gets serialized as (with caching enabled) : {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"weightInKgs"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} As we can see all String fields became "email" and all int32 fields became "weightInKgs". > JsonConverter mangles schema during serialization (fromConnectData) > --- > > Key: KAFKA-3055 > URL: https://issues.apache.org/jira/browse/KAFKA-3055 > Project: Kafka > Issue Type: Bug > Components: copycat >Affects Versions: 0.9.0.0 >Reporter: Kishore Senji >Assignee: Ewen Cheslack-Postava > > Test case is here: > https://github.com/ksenji/kafka-connect-test/tree/master/src/test/java/org/apache/kafka/connect/json > If Caching is disabled, it behaves correctly and JsonConverterWithNoCacheTest > runs successfully. Otherwise the test JsonConverterTest fails. > The reason is that the JsonConverter has a bug where it mangles the schema as > it assigns all String fields with the same name (and similar for all Int32 > fields) > This is how the schema & payload gets serialized for the Person Struct (with > caching disabled): > {code} > {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"firstName"},{"type":"string","optional":false,"field":"lastName"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"age"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} > {code} > where as when caching is enabled the same
[jira] [Commented] (KAFKA-3055) JsonConverter mangles schema during serialization (fromConnectData)
[ https://issues.apache.org/jira/browse/KAFKA-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15076222#comment-15076222 ] Kishore Senji commented on KAFKA-3055: -- PR: https://github.com/apache/kafka/pull/722 > JsonConverter mangles schema during serialization (fromConnectData) > --- > > Key: KAFKA-3055 > URL: https://issues.apache.org/jira/browse/KAFKA-3055 > Project: Kafka > Issue Type: Bug > Components: copycat >Affects Versions: 0.9.0.0 >Reporter: Kishore Senji >Assignee: Ewen Cheslack-Postava > > Test case is here: > https://github.com/ksenji/kafka-connect-test/tree/master/src/test/java/org/apache/kafka/connect/json > If Caching is disabled, it behaves correctly and JsonConverterWithNoCacheTest > runs successfully. Otherwise the test JsonConverterTest fails. > The reason is that the JsonConverter has a bug where it mangles the schema as > it assigns all String fields with the same name (and similar for all Int32 > fields) > This is how the schema & payload gets serialized for the Person Struct (with > caching disabled): > {code} > {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"firstName"},{"type":"string","optional":false,"field":"lastName"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"age"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} > {code} > where as when caching is enabled the same Struct gets serialized as (with > caching enabled) : > {code} > {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"weightInKgs"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} > {code} > As we can see all String fields became "email" and all int32 fields became > "weightInKgs". -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (KAFKA-3055) JsonConverter mangles schema during serialization (fromConnectData)
[ https://issues.apache.org/jira/browse/KAFKA-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kishore Senji updated KAFKA-3055: - Reviewer: Ewen Cheslack-Postava > JsonConverter mangles schema during serialization (fromConnectData) > --- > > Key: KAFKA-3055 > URL: https://issues.apache.org/jira/browse/KAFKA-3055 > Project: Kafka > Issue Type: Bug > Components: copycat >Affects Versions: 0.9.0.0 >Reporter: Kishore Senji >Assignee: Ewen Cheslack-Postava > > Test case is here: > https://github.com/ksenji/kafka-connect-test/tree/master/src/test/java/org/apache/kafka/connect/json > If Caching is disabled, it behaves correctly and JsonConverterWithNoCacheTest > runs successfully. Otherwise the test JsonConverterTest fails. > The reason is that the JsonConverter has a bug where it mangles the schema as > it assigns all String fields with the same name (and similar for all Int32 > fields) > This is how the schema & payload gets serialized for the Person Struct (with > caching disabled): > {code} > {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"firstName"},{"type":"string","optional":false,"field":"lastName"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"age"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} > {code} > where as when caching is enabled the same Struct gets serialized as (with > caching enabled) : > {code} > {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"weightInKgs"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} > {code} > As we can see all String fields became "email" and all int32 fields became > "weightInKgs". -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-3055) JsonConverter mangles schema during serialization (fromConnectData)
[ https://issues.apache.org/jira/browse/KAFKA-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15139051#comment-15139051 ] Kishore Senji commented on KAFKA-3055: -- Please look here: https://github.com/ksenji/kafka-connect-test/blob/master/src/test/java/org/apache/kafka/connect/json/JsonConverterWithNoCacheTest.java > JsonConverter mangles schema during serialization (fromConnectData) > --- > > Key: KAFKA-3055 > URL: https://issues.apache.org/jira/browse/KAFKA-3055 > Project: Kafka > Issue Type: Bug > Components: copycat >Affects Versions: 0.9.0.0 >Reporter: Kishore Senji >Assignee: Ewen Cheslack-Postava > Fix For: 0.9.0.1, 0.9.1.0 > > > Test case is here: > https://github.com/ksenji/kafka-connect-test/tree/master/src/test/java/org/apache/kafka/connect/json > If Caching is disabled, it behaves correctly and JsonConverterWithNoCacheTest > runs successfully. Otherwise the test JsonConverterTest fails. > The reason is that the JsonConverter has a bug where it mangles the schema as > it assigns all String fields with the same name (and similar for all Int32 > fields) > This is how the schema & payload gets serialized for the Person Struct (with > caching disabled): > {code} > {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"firstName"},{"type":"string","optional":false,"field":"lastName"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"age"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} > {code} > where as when caching is enabled the same Struct gets serialized as (with > caching enabled) : > {code} > {"schema":{"type":"struct","fields":[{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"string","optional":false,"field":"email"},{"type":"int32","optional":false,"field":"weightInKgs"},{"type":"int32","optional":false,"field":"weightInKgs"}],"optional":false,"name":"Person"},"payload":{"firstName":"Eric","lastName":"Cartman","email":"eric.cart...@southpark.com","age":10,"weightInKgs":40}} > {code} > As we can see all String fields became "email" and all int32 fields became > "weightInKgs". -- This message was sent by Atlassian JIRA (v6.3.4#6332)