[ 
https://issues.apache.org/jira/browse/JOHNZON-402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Markus Jung resolved JOHNZON-402.
---------------------------------
    Fix Version/s: 2.1.0
       Resolution: Fixed

> Polymorphism attributes not serialized if @JsonbTypeInfo is not attached to 
> direct parent
> -----------------------------------------------------------------------------------------
>
>                 Key: JOHNZON-402
>                 URL: https://issues.apache.org/jira/browse/JOHNZON-402
>             Project: Johnzon
>          Issue Type: New Feature
>          Components: JSON-B
>    Affects Versions: 2.0.0
>            Reporter: Markus Jung
>            Assignee: Markus Jung
>            Priority: Minor
>             Fix For: 2.1.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> After thinking through the polymorphism code again for JONZON-401 I noticed 
> an issue where polymorphism properties aren't taken into account if the 
> @JsonbTypeInfo annotation is not attached to a direct parent of the 
> serialized class.
> Take this example test:
> {code:java}
> public class JsonbMultiLevelPolymorphismTest {
>     @Rule
>     public JsonbRule jsonb = new JsonbRule();
>     @Test
>     public void test() {
>         ConcreteSomething info = new ConcreteSomething();
>         assertEquals("{\"@type\":\"concrete\"}", jsonb.toJson(info));
>     }
>     @JsonbTypeInfo(
>             @JsonbSubtype(alias = "concrete", type = ConcreteSomething.class)
>     )
>     public static abstract class AbstractTopLevelSomething { }
>     public static abstract class AbstractMiddleLevelSomething extends 
> AbstractTopLevelSomething { }
>     public static class ConcreteSomething extends 
> AbstractMiddleLevelSomething { }
> } {code}
> Test result:
> {code:java}
> org.junit.ComparisonFailure: 
> Expected :{"@type":"concrete"}
> Actual   :{} {code}
>  
> The spec doesn't mention that @JsonbTypeInfo has to be attached to a direct 
> parent. This also works perfectly fine in yasson, so I see no reason why it 
> should not in johnzon.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to