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

Reply via email to