From f8f0c5e1536a1fff5f0c6dcccbd5d77ec9ac6cf3 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Tue, 5 Mar 2019 14:31:44 -0600 Subject: Bug 544145 - Web Services Explorer fails to load correctly with 3.13.0 M2 Change-Id: Ica97acc6ad2e8ec564f2ec92dadb2ec07469088c Signed-off-by: Thomas Watson --- .../equinox/http/servlet/tests/ServletTest.java | 20 ++++++++++++++++++++ .../eclipse/equinox/http/servlet/tests/resource2.txt | 1 + .../servlet/internal/HttpServiceRuntimeImpl.java | 15 +++++++++------ 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/resource2.txt (limited to 'bundles') diff --git a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java index 299c6febb..e820cef83 100644 --- a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java +++ b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java @@ -1968,6 +1968,26 @@ public class ServletTest extends BaseTest { Assert.assertEquals(expected, actual); } + @Test + public void test_ResourceAliasNormal() throws Exception { + HttpService extendedHttpService = getHttpService(); + + extendedHttpService.registerResources("/testalias", "/org/eclipse/equinox/http/servlet/tests", null); + + String actual = requestAdvisor.request("testalias/resource2.txt"); + Assert.assertEquals("Wrong value.", "test", actual); + } + + @Test + public void test_ResourceAliasSlash() throws Exception { + HttpService extendedHttpService = getHttpService(); + + extendedHttpService.registerResources("/", "/org/eclipse/equinox/http/servlet/tests", null); + + String actual = requestAdvisor.request("resource2.txt"); + Assert.assertEquals("Wrong value.", "test", actual); + } + @Test public void test_ResourceRangeRequest_Complete() throws Exception { Bundle bundle = installBundle(TEST_BUNDLE_2); diff --git a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/resource2.txt b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/resource2.txt new file mode 100644 index 000000000..30d74d258 --- /dev/null +++ b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/resource2.txt @@ -0,0 +1 @@ +test \ No newline at end of file diff --git a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceRuntimeImpl.java b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceRuntimeImpl.java index f2e3f2b91..ecd7b2c12 100644 --- a/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceRuntimeImpl.java +++ b/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceRuntimeImpl.java @@ -771,15 +771,18 @@ public class HttpServiceRuntimeImpl throw new IllegalArgumentException("Name cannot be null"); //$NON-NLS-1$ } String pattern = alias; - if (pattern.startsWith("/*.")) { //$NON-NLS-1$ + if (pattern.startsWith(Const.SLASH_STAR_DOT)) { pattern = pattern.substring(1); } - else if (!pattern.contains("*.") && //$NON-NLS-1$ - !pattern.endsWith(Const.SLASH_STAR) && - !pattern.endsWith(Const.SLASH)) { - pattern += Const.SLASH_STAR; + // need to make sure exact matching aliases are converted to wildcard pattern matches + if (!pattern.endsWith(Const.SLASH_STAR) && !pattern.startsWith(Const.STAR_DOT) && !pattern.contains(Const.SLASH_STAR_DOT)) { + if (pattern.endsWith(Const.SLASH)) { + pattern = pattern + '*'; + } else { + pattern = pattern + Const.SLASH_STAR; + } } - + // check the pattern against the original input ContextController.checkPattern(alias); synchronized (legacyMappings) { -- cgit v1.2.3