[
https://issues.apache.org/jira/browse/AVRO-1571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sachin Goyal updated AVRO-1571:
-------------------------------
Description:
The below code cannot be serialized by Avro.
{code}
class Leaf <P, Q> {
P p;
Q q;
}
class Root {
Middle1 m1;
Middle2 m2;
Middle3<Integer> m3;
}
class Middle1 {
Leaf <Integer, Long> foo;
}
class Middle2 {
Leaf <String, String> foo;
}
class Middle3 <P> {
Leaf <P, P> foo;
}
{code}
This is because when generating the schema, only the current class is used to
generate the schema.
The parent class' context is missing in ReflectData#createSchema() functions
where the actual type-information is actually present.
Please see the attached test too for a simpler case.
was:
The below code cannot be serialized by Avro.
{code}
class ParameterTypes {
Master1 m1;
Master2 m2;
Master3<Integer> m3;
}
class Foo <P, Q> {
P p;
Q q;
}
class Master1 {
Foo <Integer, Long> foo;
}
class Master2 {
Foo <String, String> foo;
}
class Master3 <P> {
Foo <P, P> foo;
}
{code}
This is because when generating the schema, only the current class is used to
generate the schema. The parent class' context is missing in
ReflectData#createSchema() functions where the actual type-information is
present.
> Support parameterized types in Avro
> -----------------------------------
>
> Key: AVRO-1571
> URL: https://issues.apache.org/jira/browse/AVRO-1571
> Project: Avro
> Issue Type: Bug
> Affects Versions: 1.7.6, 1.7.7, 1.8.1
> Reporter: Sachin Goyal
> Attachments: ParameterizedTypesTest.java
>
>
> The below code cannot be serialized by Avro.
> {code}
> class Leaf <P, Q> {
> P p;
> Q q;
> }
> class Root {
> Middle1 m1;
> Middle2 m2;
> Middle3<Integer> m3;
> }
> class Middle1 {
> Leaf <Integer, Long> foo;
> }
> class Middle2 {
> Leaf <String, String> foo;
> }
> class Middle3 <P> {
> Leaf <P, P> foo;
> }
> {code}
> This is because when generating the schema, only the current class is used to
> generate the schema.
> The parent class' context is missing in ReflectData#createSchema() functions
> where the actual type-information is actually present.
> Please see the attached test too for a simpler case.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)