Author: pauls
Date: Tue Jul 4 14:11:34 2017
New Revision: 1800793
URL: http://svn.apache.org/viewvc?rev=1800793&view=rev
Log:
SLING-6996: Fix Root Mappings for Resource Resolution when sling:match contains
a regex in the host part by double checking that we didn't match a regex on
detecting hosts in patterns.
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntry.java
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntryTest.java
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntry.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntry.java?rev=1800793&r1=1800792&r2=1800793&view=diff
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntry.java
(original)
+++
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntry.java
Tue Jul 4 14:11:34 2017
@@ -107,7 +107,10 @@ public class MapEntry implements Compara
for (int i = 0; i < URL_WITH_PORT_MATCH.length; i++) {
final Matcher m = URL_WITH_PORT_MATCH[i].matcher(uriPath);
if (m.find()) {
- return m.replaceAll(URL_WITH_PORT_REPLACEMENT[i]);
+ if (!isRegExp(m.replaceAll("$1$2")))
+ {
+ return m.replaceAll(URL_WITH_PORT_REPLACEMENT[i]);
+ }
}
}
Modified:
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntryTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntryTest.java?rev=1800793&r1=1800792&r2=1800793&view=diff
==============================================================================
---
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntryTest.java
(original)
+++
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntryTest.java
Tue Jul 4 14:11:34 2017
@@ -137,7 +137,14 @@ public class MapEntryTest {
"gurk/sling.apache.org.456/");
assertEqualUriPath("gurk/sling.apache.org.789/site/index.html",
"gurk/sling.apache.org.789/site/index.html");
-
+
+ // SLING-6996: test that regex pattern are accepted
+ assertEqualUriPath("http/localhost.\\d*", "http/localhost.\\d*");
+ assertEqualUriPath("http/localhost.\\d*/site/index.html",
+ "http/localhost.\\d*/site/index.html");
+ assertEqualUriPath("http/(.*)", "http/(.*)");
+ assertEqualUriPath("http/(.*)/site/index.html",
+ "http/(.*)/site/index.html");
}
@Test public void test_isRegExp() {