This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git
The following commit(s) were added to refs/heads/master by this push:
new b8dfc56 SLING-13030 Fix creation of non-opaque SlingUri's without path
b8dfc56 is described below
commit b8dfc565efea7c58a1aee5495e6078a88676530b
Author: Konrad Windszus <[email protected]>
AuthorDate: Fri Dec 12 11:43:35 2025 +0100
SLING-13030 Fix creation of non-opaque SlingUri's without path
---
.../java/org/apache/sling/api/uri/SlingUriBuilder.java | 3 +--
src/test/java/org/apache/sling/api/uri/SlingUriTest.java | 15 +++++++++++++++
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/sling/api/uri/SlingUriBuilder.java
b/src/main/java/org/apache/sling/api/uri/SlingUriBuilder.java
index abea56f..582b925 100644
--- a/src/main/java/org/apache/sling/api/uri/SlingUriBuilder.java
+++ b/src/main/java/org/apache/sling/api/uri/SlingUriBuilder.java
@@ -227,7 +227,6 @@ public class SlingUriBuilder {
String path = uri.getRawPath();
boolean pathExists = isNotBlank(path);
String uriQuery = uri.getRawQuery();
- boolean schemeSpecificRelevant = !pathExists && uriQuery == null;
String uriHost = uri.getHost();
if (FILE_SCHEME.equals(uri.getScheme()) && uriHost == null) {
uriHost = ""; // ensure three slashes in file URIs without host
@@ -240,7 +239,7 @@ public class SlingUriBuilder {
.setPath(pathExists ? path : null)
.setQuery(uriQuery)
.setFragment(uri.getRawFragment())
- .setSchemeSpecificPart(schemeSpecificRelevant ?
uri.getRawSchemeSpecificPart() : null);
+ .setSchemeSpecificPart(uri.isOpaque() ?
uri.getRawSchemeSpecificPart() : null);
}
/**
diff --git a/src/test/java/org/apache/sling/api/uri/SlingUriTest.java
b/src/test/java/org/apache/sling/api/uri/SlingUriTest.java
index b9ce724..9a60d45 100644
--- a/src/test/java/org/apache/sling/api/uri/SlingUriTest.java
+++ b/src/test/java/org/apache/sling/api/uri/SlingUriTest.java
@@ -1009,6 +1009,21 @@ public class SlingUriTest {
assertNull("Suffix resource is null if suffix is null",
slingUriNoSuffix.getSuffixResource());
}
+ @Test
+ public void testWithSchemeAndHostWithoutQueryAndPath() {
+ SlingUri testUri =
+ SlingUriBuilder.parse("https://sling.apache.org",
null).build();
+ assertEquals("https://sling.apache.org",
testUri.toUri().toASCIIString());
+ }
+
+ @Test
+ public void testHostWithoutSchemeAndQueryAndPath() {
+ SlingUri testUri = SlingUriBuilder.parse("sling.apache.org",
null).build();
+ assertEquals("sling.apache.org", testUri.toUri().toASCIIString());
+ testUri = SlingUriBuilder.parse("//sling.apache.org", null).build();
+ assertEquals("//sling.apache.org", testUri.toUri().toASCIIString());
+ }
+
// -- helper methods
public static void testUri(
String testUri,