We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Registry Version: 2.4.1.Final Persistence type: Reproduced in "In-memory"
Testing using Spring and testcontainers 1.17.6
The following schema ends up calling the RecordIdStrategy both for the Record and for the Enum, the latter causing a SerializationException.
RecordIdStrategy
SerializationException
[{ "type": "enum", "namespace": "test", "name": "EventType", "symbols": ["CREATED", "DELETED", "UNDEFINED", "UPDATED"] }, { "type": "record", "namespace": "test", "name": "ValidateEvent", "fields": [ { "type": "EventType", "name": "eventType", "default": "UNDEFINED" } ] }]
See RecordIdStrategy.java:38 and AvroSchemaParser.java:94
Publishing should work. It works in 2.1.5.Final.
The message must only be an Avro record schema! org.apache.kafka.common.errors.SerializationException: The message must only be an Avro record schema! io.apicurio.registry.serde.avro.strategy.RecordIdStrategy.artifactReference(RecordIdStrategy.java:44) io.apicurio.registry.resolver.AbstractSchemaResolver.resolveArtifactReference(AbstractSchemaResolver.java:158) io.apicurio.registry.resolver.DefaultSchemaResolver.handleArtifactReferences(DefaultSchemaResolver.java:141) io.apicurio.registry.resolver.DefaultSchemaResolver.getSchemaFromRegistry(DefaultSchemaResolver.java:112) io.apicurio.registry.resolver.DefaultSchemaResolver.resolveSchema(DefaultSchemaResolver.java:88) io.apicurio.registry.serde.AbstractKafkaSerializer.serialize(AbstractKafkaSerializer.java:83) org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:926) org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:886) org.springframework.kafka.core.DefaultKafkaProducerFactory$CloseSafeProducer.send(DefaultKafkaProducerFactory.java:922) org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:625) org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:431) org.springframework.kafka.core.KafkaTemplate.sendDefault(KafkaTemplate.java:409) my.test(Test.java:267) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74) org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) org.junit.runners.ParentRunner.run(ParentRunner.java:413) org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110) org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58) org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38) org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) com.sun.proxy.$Proxy5.processTestClass(Unknown Source) org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414) org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) java.base/java.lang.Thread.run(Thread.java:834)
The text was updated successfully, but these errors were encountered:
Thank you for reporting an issue!
Pinging @jsenko to respond or triage.
Sorry, something went wrong.
Hi, @tomasAlabes thanks for raising this. I have confirmed it and created a PR with a potential fix.
carlesarnal
Successfully merging a pull request may close this issue.
Description
Registry
Version: 2.4.1.Final
Persistence type: Reproduced in "In-memory"
Environment
Testing using Spring and testcontainers 1.17.6
Steps to Reproduce
The following schema ends up calling the
RecordIdStrategy
both for the Record and for the Enum, the latter causing aSerializationException
.See RecordIdStrategy.java:38 and AvroSchemaParser.java:94
Expected vs Actual Behaviour
Publishing should work. It works in 2.1.5.Final.
Logs
The text was updated successfully, but these errors were encountered: