-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
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
more than 2 levels of references not working as expected. #427
Labels
bug
Something isn't working
Comments
com.test.rfq.correlation.model.RfqEventContext.avsc.txt Adding avro files to repro, had to rename to .txt for github filter. |
Hi @rjaen, I'm fairly certain this is fixed in the latest release. |
will report back once we confirm it, thanks! |
Actually, I think I found your bug while working on something else. Fixing inbound. |
big-andy-coates
pushed a commit
that referenced
this issue
Jan 16, 2025
fixes: #427 fixes: #452 SpecMesh already allows schema owned by other domains to be referenced by schema owned by the domain. When encountered, such non-owned schema are ignored, i.e. to attempt is made to register them. However, dependent schemas will fail to register if the non-owned schema is not already registered. What was not supported till now, was a channel directly referencing a non-owned schema. What is called a 'topic schema' in the code. In this instance, the schema needs to be registered against the appropriate `${topic.name}-key` or `${topic.name}-value` subject, otherwise things won't work. As the schema isn't owned by the domain, it can't just register the schema. Instead, it first ensures the schema is already registered under a subject name that matches its fully qualified name. For an avro schema the FQ name is `${schema.namespace}.${schema.name}` Only if the non-owned schema has already been registered under the correct name can will the schema also be associated with the topic's key or value by registering the non-owned schema against the appropriate `${topic.name}-key` or `${topic.name}-value` subject.
big-andy-coates
added a commit
that referenced
this issue
Jan 21, 2025
fixes: #427 fixes: #452 SpecMesh already allows schema owned by other domains to be referenced by schema owned by the domain. When encountered, such non-owned schema are ignored, i.e. to attempt is made to register them. However, dependent schemas will fail to register if the non-owned schema is not already registered. What was not supported till now, was a channel directly referencing a non-owned schema. What is called a 'topic schema' in the code. In this instance, the schema needs to be registered against the appropriate `${topic.name}-key` or `${topic.name}-value` subject, otherwise things won't work. As the schema isn't owned by the domain, it can't just register the schema. Instead, it first ensures the schema is already registered under a subject name that matches its fully qualified name. For an avro schema the FQ name is `${schema.namespace}.${schema.name}` Only if the non-owned schema has already been registered under the correct name can will the schema also be associated with the topic's key or value by registering the non-owned schema against the appropriate `${topic.name}-key` or `${topic.name}-value` subject. Co-authored-by: Andy Coates <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
Having 3 schemas A, B and C, A references to B, references to C. When schemas are loaded C is read fine, B is read fine with its C dependency, then A wants to load load B, but references needed by B are not loaded so B fails by not finding C reference.
To Reproduce
Adding reduced version of the real files, they have references each other, so provisioning files in order Timer (C), then RequestRowModel (B) and finally RfqEventContext(A) should show the error when loading A.
org.apache.avro.SchemaParseException: Type not supported: com.test.rfq.single.Timer
Expected behavior
Provisioning should work just fine and references should work.
Actual behaviour
References are not working for 3 levels. They do for 2 levels B depending on A.
Version info
The text was updated successfully, but these errors were encountered: