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 2014/01/30 09:29:11 UTC

svn commit: r1562721 - in /tomcat/trunk: java/org/apache/catalina/core/StandardContext.java test/org/apache/catalina/core/TestStandardContext.java webapps/docs/changelog.xml

Author: markt
Date: Thu Jan 30 08:29:10 2014
New Revision: 1562721

URL: http://svn.apache.org/r1562721
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56085
ServletContext.getRealPath(String) should return null for invalid input rather than throwing an IllegalArgumentException

Modified:
    tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
    tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1562721&r1=1562720&r2=1562721&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu Jan 30 08:29:10 2014
@@ -4418,7 +4418,11 @@ public class StandardContext extends Con
             path = "/";
         }
         if (resources != null) {
-            return resources.getResource(path).getCanonicalPath();
+            try {
+                return resources.getResource(path).getCanonicalPath();
+            } catch (IllegalArgumentException iae) {
+                // ServletContext.getRealPath() does not allow this to be thrown
+            }
         }
         return null;
     }

Modified: tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java?rev=1562721&r1=1562720&r2=1562721&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java (original)
+++ tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java Thu Jan 30 08:29:10 2014
@@ -876,4 +876,20 @@ public class TestStandardContext extends
         Assert.assertTrue(log, log.contains("PASS"));
         Assert.assertFalse(log, log.contains("FAIL"));
     }
+
+    @Test
+    public void testBug56085() throws Exception {
+        // Set up a container
+        Tomcat tomcat = getTomcatInstance();
+
+        File docBase = new File("test/webapp");
+        Context ctx = tomcat.addContext("", docBase.getAbsolutePath());
+
+        // Start the context
+        tomcat.start();
+
+        String realPath = ctx.getRealPath("\\");
+
+        Assert.assertNull(realPath);
+    }
 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1562721&r1=1562720&r2=1562721&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu Jan 30 08:29:10 2014
@@ -44,6 +44,15 @@
   They eventually become mixed with the numbered issues. (I.e., numbered
   issues to not "pop up" wrt. others).
 -->
+<section name="Tomcat 8.0.2 (markt)">
+  <subsection name="Catalina">
+    <changelog>
+      <bug>56085</bug>: <code>ServletContext.getRealPath(String)</code> should
+      return <code>null</code> for invalid input rather than throwing an
+      <code>IllegalArgumentException</code>. (markt)
+    </changelog>
+  </subsection>
+</section>
 <section name="Tomcat 8.0.1 (markt)">
   <subsection name="Catalina">
     <changelog>



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