[
https://issues.apache.org/jira/browse/WINK-310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12906402#action_12906402
]
Hudson commented on WINK-310:
-----------------------------
Integrated in Wink-Trunk-JDK1.5 #380 (See
[https://hudson.apache.org/hudson/job/Wink-Trunk-JDK1.5/380/])
WINK-310: support inheritance for method signatures whose parent uses
generic types
> Annotations inherited by a resource class should determine parameter type
> from the subclass, not the superclass
> ---------------------------------------------------------------------------------------------------------------
>
> Key: WINK-310
> URL: https://issues.apache.org/jira/browse/WINK-310
> Project: Wink
> Issue Type: Improvement
> Components: Server
> Affects Versions: 1.1
> Reporter: Nick Maynard
> Assignee: Mike Rheinheimer
> Fix For: 1.1.2
>
> Attachments: WINK-310.patch
>
>
> I have a generic service interface, like so:
> public interface GenericService<T> {
> @POST
> @Consumes(MediaType.APPLICATION_JSON)
> public void doSomething(T obj);
> }
> And an implementation of the interface, like so:
> @Path("/impl")
> public class Impl implements GenericService<RealJAXBType> {
> public void doSomething(RealJAXBType obj) {
> // blah blah
> }
> }
> RealJAXBType is annotated as a JAXB XMLRootElement. For information's
> sake, I'm using Apache Wink 1.1 with Jackson 1.5.5.
> When I call the service exposed by the Wink servlet, Wink attempts to
> deserialize the passed JSON content to an HashMap of some description, not
> a RealJAXBType. I assume that's because the @POST annotation is on the
> generic interface. My guess is that Wink picks up the "class" of T, which
> is of course Object (as generic type T isn't scoped), and based on this,
> attempts a best-effort conversion into a HashMap, which is incompatible
> with the implementation's type of RealJAXBType.
> I've verified this happens for an abstract superclass as well as an
> interface, so I guess it's to do with the annotation inheritance code.
> This seems unintuitive - I'd certainly expect Wink to look at the
> implementation parameter's class when deciding what to attempt to
> deserialise the JSON content into. Ideally, I'd like Wink to heed the
> type of the implementation.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.