From ad6fc62bb53dc06f5cbe3c74df4f1da3be2938ad Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Wed, 17 Feb 2021 18:05:12 +0100 Subject: [PATCH] Cleanup setPathQuery from #5954 (#5981) Cleanup setPathQuery from #5954 so that it does not retain an old query if the passed string does not contain a query --- .../src/main/java/org/eclipse/jetty/http/HttpURI.java | 1 + .../src/test/java/org/eclipse/jetty/http/HttpURITest.java | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpURI.java b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpURI.java index b08548737701..6fe01fbba3c9 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpURI.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpURI.java @@ -705,6 +705,7 @@ public Mutable pathQuery(String pathQuery) _path = null; _decodedPath = null; _param = null; + _query = null; if (pathQuery != null) parse(State.PATH, pathQuery); return this; diff --git a/jetty-http/src/test/java/org/eclipse/jetty/http/HttpURITest.java b/jetty-http/src/test/java/org/eclipse/jetty/http/HttpURITest.java index 104f0df82034..8f24037f0480 100644 --- a/jetty-http/src/test/java/org/eclipse/jetty/http/HttpURITest.java +++ b/jetty-http/src/test/java/org/eclipse/jetty/http/HttpURITest.java @@ -236,6 +236,13 @@ public void testMutableURIBuilder() assertEquals("p2", uri.getParam()); assertEquals("name=value", uri.getQuery()); + uri = builder.pathQuery("/f%30%30;p0/bar;p1;p2").asImmutable(); + assertEquals("http://host:8888/f%30%30;p0/bar;p1;p2", uri.toString()); + assertEquals("/f%30%30;p0/bar;p1;p2", uri.getPath()); + assertEquals("/f00/bar", uri.getDecodedPath()); + assertEquals("p2", uri.getParam()); + assertEquals(null, uri.getQuery()); + uri = builder.query("other=123456").asImmutable(); assertEquals("http://host:8888/f%30%30;p0/bar;p1;p2?other=123456", uri.toString()); assertEquals("/f%30%30;p0/bar;p1;p2", uri.getPath());