vroyer opened a new issue #10427:
URL: https://github.com/apache/pulsar/issues/10427


   **Describe the bug**
   The pulsar AvroSchema does not support UUID, it causes the following 
exception:
   
   ```
   org.apache.pulsar.client.api.SchemaSerializationException: 
org.apache.avro.AvroRuntimeException: Unknown datum type java.util.UUID: 
23e3696a-a9c9-485c-91e3-21f460be687d
        at 
org.apache.pulsar.client.impl.schema.writer.AvroWriter.write(AvroWriter.java:55)
        at 
org.apache.pulsar.client.impl.schema.AbstractStructSchema.encode(AbstractStructSchema.java:50)
        at 
org.apache.pulsar.client.impl.schema.AvroSchemaTest.testAvroUUID(AvroSchemaTest.java:437)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
        at 
org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:45)
        at 
org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:73)
        at 
org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   Caused by: org.apache.avro.AvroRuntimeException: Unknown datum type 
java.util.UUID: 23e3696a-a9c9-485c-91e3-21f460be687d
        at 
org.apache.avro.generic.GenericData.getSchemaName(GenericData.java:911)
        at 
org.apache.avro.specific.SpecificData.getSchemaName(SpecificData.java:413)
        at 
org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:873)
        at 
org.apache.avro.generic.GenericDatumWriter.resolveUnion(GenericDatumWriter.java:272)
        at 
org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:143)
        at 
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:83)
        at 
org.apache.avro.reflect.ReflectDatumWriter.write(ReflectDatumWriter.java:158)
        at 
org.apache.avro.generic.GenericDatumWriter.writeField(GenericDatumWriter.java:221)
        at 
org.apache.avro.specific.SpecificDatumWriter.writeField(SpecificDatumWriter.java:101)
        at 
org.apache.avro.reflect.ReflectDatumWriter.writeField(ReflectDatumWriter.java:184)
        at 
org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:210)
        at 
org.apache.avro.specific.SpecificDatumWriter.writeRecord(SpecificDatumWriter.java:83)
        at 
org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:131)
        at 
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:83)
        at 
org.apache.avro.reflect.ReflectDatumWriter.write(ReflectDatumWriter.java:158)
        at 
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73)
        at 
org.apache.pulsar.client.impl.schema.writer.AvroWriter.write(AvroWriter.java:53)
   ```
   
   **To Reproduce**
   
       static class MyPojo {
           public UUID uid;
       }
   
       @Test
       public void testAvroUUID() {
           org.apache.pulsar.client.api.Schema schema = 
org.apache.pulsar.client.api.Schema.AVRO(MyPojo.class);
           MyPojo pojo = new MyPojo();
           pojo.uid = UUID.randomUUID();
           schema.encode(pojo);
       }
   
   **Additional context**
   Pulsar 2.8.0-SNAPSHOT
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to