diff --git a/webserver/webserver/src/main/java/io/helidon/webserver/RequestRouting.java b/webserver/webserver/src/main/java/io/helidon/webserver/RequestRouting.java index 79ba52ae40c..9fade5073cf 100644 --- a/webserver/webserver/src/main/java/io/helidon/webserver/RequestRouting.java +++ b/webserver/webserver/src/main/java/io/helidon/webserver/RequestRouting.java @@ -82,12 +82,16 @@ public void route(BareRequest bareRequest, BareResponse bareResponse) { } private static String canonicalize(String p) { - String result = p; - if (p.charAt(p.length() - 1) == '/') { - result = p.substring(0, p.length() - 1); - } - if (result.isEmpty()) { + String result; + if (p == null || p.isEmpty() || p.equals("/")) { result = "/"; + } else { + int lastCharIndex = p.length() - 1; + if (p.charAt(lastCharIndex) == '/') { + result = p.substring(0, lastCharIndex); + } else { + result = p; + } } return result; }