Author: markt Date: Tue Oct 21 19:26:01 2014 New Revision: 1633440 URL: http://svn.apache.org/r1633440 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57113 Fix broken package imports in Expression Language when more than one package was imported and the desired class was not in the last package imported.
Modified: tomcat/trunk/java/javax/el/ImportHandler.java tomcat/trunk/test/javax/el/TestImportHandler.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/javax/el/ImportHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ImportHandler.java?rev=1633440&r1=1633439&r2=1633440&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/ImportHandler.java (original) +++ tomcat/trunk/java/javax/el/ImportHandler.java Tue Oct 21 19:26:01 2014 @@ -143,7 +143,10 @@ public class ImportHandler { // (which correctly triggers an error) for (String p : packages) { String className = p + '.' + name; - result = findClass(className, true); + Class<?> clazz = findClass(className, true); + if (clazz != null) { + result = clazz; + } } } Modified: tomcat/trunk/test/javax/el/TestImportHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/javax/el/TestImportHandler.java?rev=1633440&r1=1633439&r2=1633440&view=diff ============================================================================== --- tomcat/trunk/test/javax/el/TestImportHandler.java (original) +++ tomcat/trunk/test/javax/el/TestImportHandler.java Tue Oct 21 19:26:01 2014 @@ -16,6 +16,8 @@ */ package javax.el; +import java.util.ArrayList; + import org.junit.Assert; import org.junit.Test; @@ -64,6 +66,23 @@ public class TestImportHandler { /** + * Multiple package imports with a single match. + * https://issues.apache.org/bugzilla/show_bug.cgi?id=57113 + */ + @Test + public void testResolveClass04() { + ImportHandler handler = new ImportHandler(); + + handler.importPackage("java.util"); + handler.importPackage("java.net"); + + Class<?> clazz = handler.resolveClass("ArrayList"); + + Assert.assertEquals(ArrayList.class, clazz); + } + + + /** * Import a valid class. */ @Test Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1633440&r1=1633439&r2=1633440&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Tue Oct 21 19:26:01 2014 @@ -191,6 +191,11 @@ <bug>57099</bug>: Ensure that semi-colons are not permitted in JSP import page directives. (markt) </fix> + <fix> + <bug>57113</bug>: Fix broken package imports in Expression Language when + more than one package was imported and the desired class was not in the + last package imported. (markt) + </fix> </changelog> </subsection> <subsection name="Cluster"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org