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: [email protected]
For additional commands, e-mail: [email protected]