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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org