From c4ec3354486c35c0ef8ac225adedbc9a20be74f2 Mon Sep 17 00:00:00 2001 From: Konstantin Sorokin Date: Tue, 19 Dec 2023 15:36:52 +0300 Subject: [PATCH] fix: URIBuilder.getFirstQueryParam throws exception when query is empty. Instead it must return null if named parameter not found --- httpcore5/src/main/java/org/apache/hc/core5/net/URIBuilder.java | 2 +- .../src/test/java/org/apache/hc/core5/net/TestURIBuilder.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/httpcore5/src/main/java/org/apache/hc/core5/net/URIBuilder.java b/httpcore5/src/main/java/org/apache/hc/core5/net/URIBuilder.java index 5f3c0fac9..4989a6b87 100644 --- a/httpcore5/src/main/java/org/apache/hc/core5/net/URIBuilder.java +++ b/httpcore5/src/main/java/org/apache/hc/core5/net/URIBuilder.java @@ -967,7 +967,7 @@ public List getQueryParams() { * @since 5.2 */ public NameValuePair getFirstQueryParam(final String name) { - return queryParams.stream().filter(e -> name.equals(e.getName())).findFirst().orElse(null); + return getQueryParams().stream().filter(e -> name.equals(e.getName())).findFirst().orElse(null); } /** diff --git a/httpcore5/src/test/java/org/apache/hc/core5/net/TestURIBuilder.java b/httpcore5/src/test/java/org/apache/hc/core5/net/TestURIBuilder.java index 31a567198..3642855bb 100644 --- a/httpcore5/src/test/java/org/apache/hc/core5/net/TestURIBuilder.java +++ b/httpcore5/src/test/java/org/apache/hc/core5/net/TestURIBuilder.java @@ -399,6 +399,8 @@ public void testGetFirstNamedParameter() throws Exception { // uribuilder = new URIBuilder("http://localhost:80/?param=some%20other%20stuff&blah=blah&blah=blah2"); Assertions.assertEquals("blah", uribuilder.getFirstQueryParam("blah").getValue()); + uribuilder.removeQuery(); + Assertions.assertNull(uribuilder.getFirstQueryParam("param")); } @Test