You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "John D. Ament (JIRA)" <ji...@apache.org> on 2017/09/07 01:55:01 UTC

[jira] [Comment Edited] (CXF-7493) Cannot define a List or List as a query param

    [ https://issues.apache.org/jira/browse/CXF-7493?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16156304#comment-16156304 ] 

John D. Ament edited comment on CXF-7493 at 9/7/17 1:54 AM:
------------------------------------------------------------

Ok, well I figured out where the delta's coming from.  the issue starts from {{ResourceUtils.evaluateResourceClass}}

In Weld, when you do {{m.getAnnotations()}} it includes the {{@GET}} (and other) annotation.  In OWB, that annotation doesn't come back.  Since it doesn't come back in OWB, its falling back into the scan superclass logic, which returns the non-proxied method.

I'm wondering if a check should be add for {{isSynthetic()}}, but not sure.  What Weld's doing here isn't wrong, just a bit surprising.


was (Author: johndament):
Ok, well I figured out where the delta's coming from.

In Weld, when you do {{m.getAnnotations()}} it includes the {{@GET}} (and other) annotation.  In OWB, that annotation doesn't come back.  Since it doesn't come back in OWB, its falling back into the scan superclass logic, which returns the non-proxied method.

I'm wondering if a check should be add for {{isSynthetic()}}, but not sure.  What Weld's doing here isn't wrong, just a bit surprising.

> Cannot define a List<Double> or List<Long> as a query param
> -----------------------------------------------------------
>
>                 Key: CXF-7493
>                 URL: https://issues.apache.org/jira/browse/CXF-7493
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 3.1.12
>            Reporter: John D. Ament
>
> When defining a resource method like:
> {code}
> public JsonObject verifyInjectedCustomIntegerArray(@QueryParam("value") List<Long> array)
> public JsonObject verifyInjectedCustomDoubleArray(@QueryParam("value") List<Double> array)
> {code}
> The following stacktrace is shown when parsing the body:
> {code}
> java.lang.NullPointerException
> 	at org.apache.cxf.jaxrs.utils.InjectionUtils.injectIntoCollectionOrArray(InjectionUtils.java:904)
> 	at org.apache.cxf.jaxrs.utils.InjectionUtils.createParameterObject(InjectionUtils.java:1003)
> 	at org.apache.cxf.jaxrs.utils.JAXRSUtils.readQueryString(JAXRSUtils.java:1196)
> 	at org.apache.cxf.jaxrs.utils.JAXRSUtils.createHttpParameterValue(JAXRSUtils.java:872)
> 	at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:842)
> 	at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:793)
> 	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:212)
> 	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:77)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> 	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> 	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:263)
> 	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
> 	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:189)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:299)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:223)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:274)
> 	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
> 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)