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

John D. Ament commented on CXF-7493:
------------------------------------

Ok, I did some more digging.

The issue occurs when you have a CDI bean as your rest controller/rest resource 
using Weld as your CDI implementation (problem does not replicate with 
OpenWebBeans).  In the {{OperationResourceInfo}} the 
{{actualInGenericParamTypes}} field has {{List.class}} instead of the proper 
{{ParameterizedType List<Integer>}}.

So to replicate this, you'd need to add a test to the CDI test suite.

> 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)

Reply via email to