You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/02/28 11:16:51 UTC

svn commit: r1784723 - in /tomcat/trunk: java/org/apache/catalina/core/ApplicationMapping.java test/org/apache/catalina/core/TestApplicationMapping.java

Author: markt
Date: Tue Feb 28 11:16:51 2017
New Revision: 1784723

URL: http://svn.apache.org/viewvc?rev=1784723&view=rev
Log:
Servlet 4 EG discussion concluded that leading '/' should not be present in match values.

Modified:
    tomcat/trunk/java/org/apache/catalina/core/ApplicationMapping.java
    tomcat/trunk/test/org/apache/catalina/core/TestApplicationMapping.java

Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationMapping.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationMapping.java?rev=1784723&r1=1784722&r2=1784723&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationMapping.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationMapping.java Tue Feb 28 11:16:51 2017
@@ -44,20 +44,20 @@ public class ApplicationMapping {
                     mapping = new MappingImpl("", "", mappingData.matchType, servletName);
                     break;
                 case DEFAULT:
-                    mapping = new MappingImpl("/", "/", mappingData.matchType, servletName);
+                    mapping = new MappingImpl("", "/", mappingData.matchType, servletName);
                     break;
                 case EXACT:
-                    mapping = new MappingImpl(mappingData.wrapperPath.toString(),
+                    mapping = new MappingImpl(mappingData.wrapperPath.toString().substring(1),
                             mappingData.wrapperPath.toString(), mappingData.matchType, servletName);
                     break;
                 case EXTENSION:
                     String path = mappingData.wrapperPath.toString();
                     int extIndex = path.lastIndexOf('.');
-                    mapping = new MappingImpl(path.substring(0, extIndex),
+                    mapping = new MappingImpl(path.substring(1, extIndex),
                             "*" + path.substring(extIndex), mappingData.matchType, servletName);
                     break;
                 case PATH:
-                    mapping = new MappingImpl(mappingData.pathInfo.toString(),
+                    mapping = new MappingImpl(mappingData.pathInfo.toString().substring(1),
                             mappingData.wrapperPath.toString() + "/*",
                             mappingData.matchType, servletName);
                     break;

Modified: tomcat/trunk/test/org/apache/catalina/core/TestApplicationMapping.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestApplicationMapping.java?rev=1784723&r1=1784722&r2=1784723&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestApplicationMapping.java (original)
+++ tomcat/trunk/test/org/apache/catalina/core/TestApplicationMapping.java Tue Feb 28 11:16:51 2017
@@ -45,22 +45,22 @@ public class TestApplicationMapping exte
 
     @Test
     public void testContextNonRootMappingDefault() throws Exception {
-        doTestMapping("/dummy", "/", "/foo", "/", "DEFAULT");
+        doTestMapping("/dummy", "/", "/foo", "", "DEFAULT");
     }
 
     @Test
     public void testContextNonRootMappingExtension() throws Exception {
-        doTestMapping("/dummy", "*.test", "/foo/bar.test", "/foo/bar", "EXTENSION");
+        doTestMapping("/dummy", "*.test", "/foo/bar.test", "foo/bar", "EXTENSION");
     }
 
     @Test
     public void testContextNonRootMappingExact() throws Exception {
-        doTestMapping("/dummy", "/foo/bar", "/foo/bar", "/foo/bar", "EXACT");
+        doTestMapping("/dummy", "/foo/bar", "/foo/bar", "foo/bar", "EXACT");
     }
 
     @Test
     public void testContextNonRootMappingPath() throws Exception {
-        doTestMapping("/dummy", "/foo/bar/*", "/foo/bar/foo2", "/foo2", "PATH");
+        doTestMapping("/dummy", "/foo/bar/*", "/foo/bar/foo2", "foo2", "PATH");
     }
 
     @Test
@@ -70,22 +70,22 @@ public class TestApplicationMapping exte
 
     @Test
     public void testContextRootMappingDefault() throws Exception {
-        doTestMapping("", "/", "/foo", "/", "DEFAULT");
+        doTestMapping("", "/", "/foo", "", "DEFAULT");
     }
 
     @Test
     public void testContextRootMappingExtension() throws Exception {
-        doTestMapping("", "*.test", "/foo/bar.test", "/foo/bar", "EXTENSION");
+        doTestMapping("", "*.test", "/foo/bar.test", "foo/bar", "EXTENSION");
     }
 
     @Test
     public void testContextRootMappingExact() throws Exception {
-        doTestMapping("", "/foo/bar", "/foo/bar", "/foo/bar", "EXACT");
+        doTestMapping("", "/foo/bar", "/foo/bar", "foo/bar", "EXACT");
     }
 
     @Test
     public void testContextRootMappingPath() throws Exception {
-        doTestMapping("", "/foo/bar/*", "/foo/bar/foo2", "/foo2", "PATH");
+        doTestMapping("", "/foo/bar/*", "/foo/bar/foo2", "foo2", "PATH");
     }
 
     private void doTestMapping(String contextPath, String mapping, String requestPath,
@@ -151,7 +151,7 @@ public class TestApplicationMapping exte
         Assert.assertTrue(body, body.contains("MatchType=[" + matchType + "]"));
         Assert.assertTrue(body, body.contains("ServletName=[Include]"));
 
-        Assert.assertTrue(body, body.contains("IncludeMatchValue=[/mapping]"));
+        Assert.assertTrue(body, body.contains("IncludeMatchValue=[mapping]"));
         Assert.assertTrue(body, body.contains("IncludePattern=[/mapping]"));
         Assert.assertTrue(body, body.contains("IncludeMatchType=[EXACT]"));
         Assert.assertTrue(body, body.contains("IncludeServletName=[Mapping]"));
@@ -197,7 +197,7 @@ public class TestApplicationMapping exte
         ByteChunk bc = getUrl("http://localhost:" + getPort() + contextPath + requestPath);
         String body = bc.toString();
 
-        Assert.assertTrue(body, body.contains("MatchValue=[/mapping]"));
+        Assert.assertTrue(body, body.contains("MatchValue=[mapping]"));
         Assert.assertTrue(body, body.contains("Pattern=[/mapping]"));
         Assert.assertTrue(body, body.contains("MatchType=[EXACT]"));
         Assert.assertTrue(body, body.contains("ServletName=[Mapping]"));
@@ -249,7 +249,7 @@ public class TestApplicationMapping exte
         ByteChunk bc = getUrl("http://localhost:" + getPort() + contextPath + requestPath);
         String body = bc.toString();
 
-        Assert.assertTrue(body, body.contains("MatchValue=[/mapping]"));
+        Assert.assertTrue(body, body.contains("MatchValue=[mapping]"));
         Assert.assertTrue(body, body.contains("Pattern=[/mapping]"));
         Assert.assertTrue(body, body.contains("MatchType=[EXACT]"));
         Assert.assertTrue(body, body.contains("ServletName=[Mapping]"));



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org