Robin Brouns created SLING-13065:
------------------------------------
Summary: SlingUriBuilder parse results in
java.lang.StringIndexOutOfBoundsException
Key: SLING-13065
URL: https://issues.apache.org/jira/browse/SLING-13065
Project: Sling
Issue Type: Bug
Components: API
Affects Versions: API 3.0.4
Reporter: Robin Brouns
When making use of SlingUriBuilder to parse or create an new instance from a
valid URI like:
{code:java}
SlingUriBuilder.parse("https://sling.apache.org/apidocs/sling12/", resolver)
.build() {code}
{code:java}
URI input = new URI("https://sling.apache.org/apidocs/sling12/");
SlingUri testUri = SlingUriBuilder.createFrom(input, resolver)
.build(); {code}
the SlingUriBuilder tries to _rebase_ the resource path. But the check for
adjusting the resource path, is not safe.
Calling it with above inputs leads to:
_java.lang.StringIndexOutOfBoundsException_
{code:java}
java.lang.StringIndexOutOfBoundsException: begin 17, end 16, length 17
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4608)
at java.base/java.lang.String.substring(String.java:2711)
at
org.apache.sling.api.uri.SlingUriBuilder.setPathWithDefinedResourcePosition(SlingUriBuilder.java:997)
at
org.apache.sling.api.uri.SlingUriBuilder.rebaseResourcePath(SlingUriBuilder.java:451)
at
org.apache.sling.api.uri.SlingUriBuilder.setPath(SlingUriBuilder.java:394)
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)