[jira] [Updated] (AVRO-3934) Generated Java code still fails with union containing logical type
[ https://issues.apache.org/jira/browse/AVRO-3934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joan Soto Targa updated AVRO-3934: -- Description: In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 (or 11) and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The fields are defined as follows: {code:json} //(...) { "name": "requestId", "type": [ "null", { "type": "string", "logicalType": "uuid" } ], "default": null } //(...) { "name": "upperTimeLimit", //"doc" field "type": [ "null", { "type": "long", "logicalType": "timestamp-millis" } ], "default": null } {code} The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the generated class file we should be getting: {code:java} private static final org.apache.avro.Conversion[] conversions; //(...) static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} Both the definition and the initialization of the conversions field are missing. was: In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 (or 11) and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the generated class file we should be getting: {code:java} private static final org.apache.avro.Conversion[] conversions; //(...) static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} Both the definition and the initialization of the conversions field are missing. > Generated Java code still fails with union containing logical type > -- > > Key: AVRO-3934 > URL: https://issues.apache.org/jira/browse/AVRO-3934 > Project: Apache Avro > Issue Type: Bug > Components: java, logical types >Affects Versions: 1.9.2, 1.11.3 > Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 > (tried with both), code being generated either in Java 8 or 11. > Faulty java generation happens in both maven running locally on intellij idea > and on jenkins pipelines. > Issue happens in both windows and linux. >Reporter: Joan Soto
[jira] [Updated] (AVRO-3934) Generated Java code still fails with union containing logical type
[ https://issues.apache.org/jira/browse/AVRO-3934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joan Soto Targa updated AVRO-3934: -- Description: In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 (or 11) and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the generated class file we should be getting: {code:java} private static final org.apache.avro.Conversion[] conversions; //(...) static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} Both the definition and the initialization of the conversions field are missing. was: In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the generated class file we should be getting: {code:java} private static final org.apache.avro.Conversion[] conversions; //(...) static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} Both the definition and the initialization of the conversions field are missing. > Generated Java code still fails with union containing logical type > -- > > Key: AVRO-3934 > URL: https://issues.apache.org/jira/browse/AVRO-3934 > Project: Apache Avro > Issue Type: Bug > Components: java, logical types >Affects Versions: 1.9.2, 1.11.3 > Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 > (tried with both), code being generated either in Java 8 or 11. > Faulty java generation happens in both maven running locally on intellij idea > and on jenkins pipelines. > Issue happens in both windows and linux. >Reporter: Joan Soto Targa >Priority: Major > > In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling > to Java 8 (or 11) and in both cases we have observed that bug AVRO-1981 is > still active and deserialization fails for nullable fields that have a > logical type: happens at least for both "uuid" (in version 1.11.3, previous > one just ignores this type) and
[jira] [Updated] (AVRO-3934) Generated Java code still fails with union containing logical type
[ https://issues.apache.org/jira/browse/AVRO-3934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joan Soto Targa updated AVRO-3934: -- Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 (tried with both), code being generated either in Java 8 or 11. Faulty java generation happens in both maven running locally on intellij idea and on jenkins pipelines. Issue happens in both windows and linux. was: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 (tried with both), code being generated in Java 8. Faulty java generation happens in both maven running locally on intellij idea and on jenkins pipelines. Issue happens in both windows and linux. > Generated Java code still fails with union containing logical type > -- > > Key: AVRO-3934 > URL: https://issues.apache.org/jira/browse/AVRO-3934 > Project: Apache Avro > Issue Type: Bug > Components: java, logical types >Affects Versions: 1.9.2, 1.11.3 > Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 > (tried with both), code being generated either in Java 8 or 11. > Faulty java generation happens in both maven running locally on intellij idea > and on jenkins pipelines. > Issue happens in both windows and linux. >Reporter: Joan Soto Targa >Priority: Major > > In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling > to Java 8 and in both cases we have observed that bug AVRO-1981 is still > active and deserialization fails for nullable fields that have a logical > type: happens at least for both "uuid" (in version 1.11.3, previous one just > ignores this type) and "timestamp-millis" (in both versions). > > The error we get for the uuid case when attempting to deserialize is: > {noformat} > java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast > to class java.util.UUID > {noformat} > In the generated class file we should be getting: > {code:java} > private static final org.apache.avro.Conversion[] conversions; > //(...) > static { > MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); > MODEL$.addLogicalTypeConversion(new > TimeConversions.TimestampMillisConversion()); > ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); > DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); > conversions = new org.apache.avro.Conversion[] { > null, > null, > new org.apache.avro.Conversions.UUIDConversion(), > null, > new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), > null > }; > WRITER$ = MODEL$.createDatumWriter(SCHEMA$); > READER$ = MODEL$.createDatumReader(SCHEMA$); > } > {code} > but we get: > {code:java} > static { > MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); > MODEL$.addLogicalTypeConversion(new > TimeConversions.TimestampMillisConversion()); > ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); > DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); > WRITER$ = MODEL$.createDatumWriter(SCHEMA$); > READER$ = MODEL$.createDatumReader(SCHEMA$); > } > {code} > Both the definition and the initialization of the conversions field are > missing. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (AVRO-3934) Generated Java code still fails with union containing logical type
[ https://issues.apache.org/jira/browse/AVRO-3934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joan Soto Targa updated AVRO-3934: -- Description: In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the generated class file we should be getting: {code:java} private static final org.apache.avro.Conversion[] conversions; //(...) static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} Both the definition and the initialization of the conversions field are missing. was: In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the generated class file we should be getting: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} > Generated Java code still fails with union containing logical type > -- > > Key: AVRO-3934 > URL: https://issues.apache.org/jira/browse/AVRO-3934 > Project: Apache Avro > Issue Type: Bug > Components: java, logical types >Affects Versions: 1.9.2, 1.11.3 > Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 > (tried with both), code being generated in Java 8. > Faulty java generation happens in both maven running locally on intellij idea > and on jenkins pipelines. > Issue happens in both windows and linux. >Reporter: Joan Soto Targa >Priority: Major > > In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling > to Java 8 and in both cases we have observed that bug AVRO-1981 is still > active and deserialization fails for nullable fields that have a logical > type: happens at least for both "uuid" (in version 1.11.3, previous one just > ignores this type) and "timestamp-millis" (in both versions). > > The error we get for the uuid case when attempting to deserialize is: > {noformat} > java.lang.ClassCastException: class
[jira] [Updated] (AVRO-3934) Generated Java code still fails with union containing logical type
[ https://issues.apache.org/jira/browse/AVRO-3934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joan Soto Targa updated AVRO-3934: -- Description: In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the generated class file we should be getting: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} was: In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the class code, we should be getting: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} > Generated Java code still fails with union containing logical type > -- > > Key: AVRO-3934 > URL: https://issues.apache.org/jira/browse/AVRO-3934 > Project: Apache Avro > Issue Type: Bug > Components: java, logical types >Affects Versions: 1.9.2, 1.11.3 > Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 > (tried with both), code being generated in Java 8. > Faulty java generation happens in both maven running locally on intellij idea > and on jenkins pipelines. > Issue happens in both windows and linux. >Reporter: Joan Soto Targa >Priority: Major > > In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling > to Java 8 and in both cases we have observed that bug AVRO-1981 is still > active and deserialization fails for nullable fields that have a logical > type: happens at least for both "uuid" (in version 1.11.3, previous one just > ignores this type) and "timestamp-millis" (in both versions). > > The error we get for the uuid case when attempting to deserialize is: > {noformat} > java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast > to class java.util.UUID > {noformat} > In the generated class file we should be getting: > {code:java} > static { >
[jira] [Created] (AVRO-3934) Generated Java code still fails with union containing logical type
Joan Soto Targa created AVRO-3934: - Summary: Generated Java code still fails with union containing logical type Key: AVRO-3934 URL: https://issues.apache.org/jira/browse/AVRO-3934 Project: Apache Avro Issue Type: Bug Components: java, logical types Affects Versions: 1.11.3, 1.9.2 Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 (tried with both), code being generated in Java 8. Faulty java generation happens in both maven running on intellij idea and on jenkins pipelines. Issue happens in both windows and linux. Reporter: Joan Soto Targa In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling to Java 8 and in both cases we have observed that bug AVRO-1981 is still active and deserialization fails for nullable fields that have a logical type: happens at least for both "uuid" (in version 1.11.3, previous one just ignores this type) and "timestamp-millis" (in both versions). The error we get for the uuid case when attempting to deserialize is: {noformat} java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast to class java.util.UUID {noformat} In the class code, we should be getting: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); conversions = new org.apache.avro.Conversion[] { null, null, new org.apache.avro.Conversions.UUIDConversion(), null, new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), null }; WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} but we get: {code:java} static { MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); MODEL$.addLogicalTypeConversion(new TimeConversions.TimestampMillisConversion()); ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); WRITER$ = MODEL$.createDatumWriter(SCHEMA$); READER$ = MODEL$.createDatumReader(SCHEMA$); } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (AVRO-3934) Generated Java code still fails with union containing logical type
[ https://issues.apache.org/jira/browse/AVRO-3934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joan Soto Targa updated AVRO-3934: -- Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 (tried with both), code being generated in Java 8. Faulty java generation happens in both maven running locally on intellij idea and on jenkins pipelines. Issue happens in both windows and linux. was: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 (tried with both), code being generated in Java 8. Faulty java generation happens in both maven running on intellij idea and on jenkins pipelines. Issue happens in both windows and linux. > Generated Java code still fails with union containing logical type > -- > > Key: AVRO-3934 > URL: https://issues.apache.org/jira/browse/AVRO-3934 > Project: Apache Avro > Issue Type: Bug > Components: java, logical types >Affects Versions: 1.9.2, 1.11.3 > Environment: apache maven, avro maven plugin, avro v1.11.3 or 1.9.2 > (tried with both), code being generated in Java 8. > Faulty java generation happens in both maven running locally on intellij idea > and on jenkins pipelines. > Issue happens in both windows and linux. >Reporter: Joan Soto Targa >Priority: Major > > In our company we're using both 1.9.2 and 1.11.3 versions of avro compiling > to Java 8 and in both cases we have observed that bug AVRO-1981 is still > active and deserialization fails for nullable fields that have a logical > type: happens at least for both "uuid" (in version 1.11.3, previous one just > ignores this type) and "timestamp-millis" (in both versions). > > The error we get for the uuid case when attempting to deserialize is: > {noformat} > java.lang.ClassCastException: class org.apache.avro.util.Utf8 cannot be cast > to class java.util.UUID > {noformat} > In the class code, we should be getting: > {code:java} > static { > MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); > MODEL$.addLogicalTypeConversion(new > TimeConversions.TimestampMillisConversion()); > ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); > DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); > conversions = new org.apache.avro.Conversion[] { > null, > null, > new org.apache.avro.Conversions.UUIDConversion(), > null, > new org.apache.avro.data.TimeConversions.TimestampMillisConversion(), > null > }; > WRITER$ = MODEL$.createDatumWriter(SCHEMA$); > READER$ = MODEL$.createDatumReader(SCHEMA$); > } > {code} > but we get: > {code:java} > static { > MODEL$.addLogicalTypeConversion(new Conversions.UUIDConversion()); > MODEL$.addLogicalTypeConversion(new > TimeConversions.TimestampMillisConversion()); > ENCODER = new BinaryMessageEncoder(MODEL$, SCHEMA$); > DECODER = new BinaryMessageDecoder(MODEL$, SCHEMA$); > WRITER$ = MODEL$.createDatumWriter(SCHEMA$); > READER$ = MODEL$.createDatumReader(SCHEMA$); > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)