[ https://issues.apache.org/jira/browse/JOHNZON-223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16891728#comment-16891728 ]
Kevin commented on JOHNZON-223: ------------------------------- Works fine, thank you! > Deserialization of objects with generic types leads to an error > --------------------------------------------------------------- > > Key: JOHNZON-223 > URL: https://issues.apache.org/jira/browse/JOHNZON-223 > Project: Johnzon > Issue Type: Bug > Components: JSON-B > Affects Versions: 1.1.12 > Reporter: Kevin > Assignee: Romain Manni-Bucau > Priority: Major > Fix For: 1.1.13 > > Attachments: error.log > > > In our project we use generic containers e.g. for enums to enrich them with > additional information. For the serialization in Json we use an own adapter. > Serialization in Json works without problems, but deserialization into an > object results in an error: > {code:java} > javax.json.bind.JsonbException: Cannot cast > sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl to > java.lang.Class{code} > From my point of view the problem lies in the method > {code:java} > org.apache.johnzon.mapper.Mappings.findConverter line 570 > final ParameterizedType type = > ParameterizedType.class.cast(decoratedType.getType()); > final Type rawType = type.getRawType(); > if (Class.class.isInstance(rawType) > && Collection.class.isAssignableFrom(Class.class.cast(rawType)) > && type.getActualTypeArguments().length >= 1) { > typeToTest = type.getActualTypeArguments()[0]; > } // TODO: map{code} > The condition checks here whether it is a collection, otherwise nothing else > is done for ParameterizedTypes. > However, the variable typeToTest should be set to rawType for > ParameterizedTypes so that a converter can be found afterwards. Otherwise > typeToTest remains a ParameterizedType and the query in line 576 if > (converter == null && Class.class.isInstance(typeToTest)) fails and no > converter will be searched. > > A small test can be found here: > [https://gist.github.com/kevinwilken/12da681534053b776247697c6f24c296] -- This message was sent by Atlassian JIRA (v7.6.14#76016)