Author: kkolinko Date: Fri Feb 13 11:01:04 2015 New Revision: 1659505 URL: http://svn.apache.org/r1659505 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57574 Do not perform package existence check in ImportHandler.importPackage()
Modified: tomcat/trunk/java/javax/el/ImportHandler.java tomcat/trunk/java/javax/el/LocalStrings.properties tomcat/trunk/test/javax/el/TestImportHandler.java Modified: tomcat/trunk/java/javax/el/ImportHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ImportHandler.java?rev=1659505&r1=1659504&r2=1659505&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/ImportHandler.java (original) +++ tomcat/trunk/java/javax/el/ImportHandler.java Fri Feb 13 11:01:04 2015 @@ -19,7 +19,6 @@ package javax.el; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -124,18 +123,10 @@ public class ImportHandler { public void importPackage(String name) { // Import ambiguity is handled at resolution, not at import - Package p = Package.getPackage(name); - if (p == null) { - // Either the package does not exist or no class has been loaded - // from that package. Check if the package exists. - ClassLoader cl = Thread.currentThread().getContextClassLoader(); - String path = name.replace('.', '/'); - URL url = cl.getResource(path); - if (url == null) { - throw new ELException(Util.message( - null, "importHandler.invalidPackage", name)); - } - } + // Whether the package exists is not checked, + // a) for sake of performance when used in JSPs (BZ 57142), + // b) java.lang.Package.getPackage(name) is not reliable (BZ 57574), + // c) such check is not required by specification. packageNames.add(name); } Modified: tomcat/trunk/java/javax/el/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/LocalStrings.properties?rev=1659505&r1=1659504&r2=1659505&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/LocalStrings.properties (original) +++ tomcat/trunk/java/javax/el/LocalStrings.properties Fri Feb 13 11:01:04 2015 @@ -37,7 +37,6 @@ importHandler.classNotFound=The class [{ importHandler.invalidClass=The class [{0}] must be public, non-abstract and not an interface importHandler.invalidClassName=Name of class to import [{0}] must include a package importHandler.invalidClassNameForStatic=The class [{0}] specified for static import [{1}] is not valid -importHandler.invalidPackage=The package [{0}] could not be found importHandler.invalidStaticName=Name of static method or field to import [{0}] must include a class importHandler.staticNotFound=The static import [{0}] could not be found in class [{1}] for import [{2}] Modified: tomcat/trunk/test/javax/el/TestImportHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/javax/el/TestImportHandler.java?rev=1659505&r1=1659504&r2=1659505&view=diff ============================================================================== --- tomcat/trunk/test/javax/el/TestImportHandler.java (original) +++ tomcat/trunk/test/javax/el/TestImportHandler.java Fri Feb 13 11:01:04 2015 @@ -183,15 +183,16 @@ public class TestImportHandler { } - /** * Import an invalid package. */ - @Test(expected=ELException.class) - public void testImportPackage01() { + @Test + public void testImportPackage01_57574() { ImportHandler handler = new ImportHandler(); handler.importPackage("org.apache.tomcat.foo"); + + // No exception is expected } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org