cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John D. Ament (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-7493) Cannot define a List<Double> or List<Long> as a query param
Date Wed, 06 Sep 2017 10:56:00 GMT

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

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

I just debugged my way through it.  {{genericType}} in {{injectIntoCollectionOrArray}} is
{{List.class}} which is not a {{ParamterizedType}}.  As best as I can tell from this code
path, you're never actually getting a reference to the actual parameterized type.  However,
when I run your test the {{genericType}} is correctly identified as {{ParameterizedTypeImpl}}
for {{List<String>}}.  When my test executes, in CXF 3.1.12 line 781 of {{JAXRSUtils}}
the check goes into the {{if}} block, but in your test it's going into the {{else}} block.

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

Mime
View raw message