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