SLING-11757: resource resolver: pathless URL in vanity path causes NPE in ResourceMapperImpl.apply()
SLING-11757: resource resolver: pathless URL in vanity path causes NPE in ResourceMapperImpl.apply()
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImpl.java b/src/main/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImpl.java
index ab1f6f3..3e02101 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImpl.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImpl.java
@@ -364,7 +364,7 @@
final URI uri = new URI(path, false);
// 1. mangle the namespaces in the path
- path = mangleNamespaces(uri.getPath());
+ path = mangleNamespaces(uri.getPath() == null ? "" : uri.getPath());
// 2. prepend servlet context path if we have a request
if (req != null && req.getContextPath() != null && req.getContextPath().length() > 0) {
diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImplTest.java b/src/test/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImplTest.java
index e0094ca..ddfd024 100644
--- a/src/test/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImplTest.java
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImplTest.java
@@ -392,13 +392,13 @@
/**
* Validates that vanity paths are returned as mappings, URL shaped variants, empty path (see see SLING-11757)
*/
- @Test(expected = NullPointerException.class)
+ @Test
public void mapResourceWithVanityPathsURLTargetNoPath() {
ExpectedMappings.existingResource("/vain-url-nopath")
.singleMapping("/vain-url-nopath")
.singleMappingWithRequest("/app/vain-url-nopath")
- .allMappings("/vain-url-nopath", "see SLING-11757")
- .allMappingsWithRequest("/app/vain-url-nopath", "see SLING-11757")
+ .allMappings("/vain-url-nopath", "")
+ .allMappingsWithRequest("/app/vain-url-nopath", "")
.verify(resolver, req);
}