You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2020/08/25 18:06:25 UTC
[cxf] branch master updated: [CXF-8329] avoid NPE with empty query
parameters
This is an automated email from the ASF dual-hosted git repository.
ffang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new ae805e6 [CXF-8329] avoid NPE with empty query parameters
new b572eb9 Merge pull request #689 from fizzet/CXF-8329
ae805e6 is described below
commit ae805e6f6b78d9a4e44fdc42750edc2997b0b39c
Author: Jens Kleine-Herzbruch <je...@dzbank.de>
AuthorDate: Tue Aug 25 11:32:03 2020 +0200
[CXF-8329] avoid NPE with empty query parameters
---
.../main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java | 6 ++++--
.../java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java | 13 +++++++++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
index 51a6033..df314d2 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
@@ -1325,8 +1325,10 @@ public final class JAXRSUtils {
value = index < part.length() ? part.substring(index + 1) : "";
}
if (valueIsCollection) {
- for (String s : value.split(",")) {
- addStructuredPartToMap(queries, sep, name, s, decode, decodePlus);
+ if (value != null) {
+ for (String s : value.split(",")) {
+ addStructuredPartToMap(queries, sep, name, s, decode, decodePlus);
+ }
}
} else {
addStructuredPartToMap(queries, sep, name, value, decode, decodePlus);
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java
index f8a3f46..fe07689 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java
@@ -301,6 +301,19 @@ public class UriInfoImplTest {
assertEquals("Wrong query value", qps.get("n").get(1), "3");
assertEquals("Wrong query value", qps.get("b").get(0), "2");
assertEquals("Wrong query value", qps.get("a.b").get(0), "ab");
+
+ Message m = mockMessage("http://localhost:8080/baz", "/bar",
+ "N=0&n=1%202&n=3&&b=2&a%2Eb=ab");
+ m.put("parse.query.value.as.collection", Boolean.TRUE);
+ u = new UriInfoImpl(m, null);
+
+ qps = u.getQueryParameters();
+ assertEquals("Number of queries is wrong", 4, qps.size());
+ assertEquals("Wrong query value", qps.get("N").get(0), "0");
+ assertEquals("Wrong query value", qps.get("n").get(0), "1 2");
+ assertEquals("Wrong query value", qps.get("n").get(1), "3");
+ assertEquals("Wrong query value", qps.get("b").get(0), "2");
+ assertEquals("Wrong query value", qps.get("a.b").get(0), "ab");
}
@Test