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,

Reply via email to