You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2006/11/14 05:56:32 UTC

svn commit: r474653 - in /incubator/harmony/enhanced/classlib/trunk/modules/luni/src: main/java/java/net/URLClassLoader.java test/java/org/apache/harmony/luni/tests/java/lang/ClassTest.java

Author: varlax
Date: Mon Nov 13 20:56:32 2006
New Revision: 474653

URL: http://svn.apache.org/viewvc?view=rev&rev=474653
Log:
HARMONY-2162 [luni-kernel] Class.forName throws IllegalArgumentException while classname includes '%'

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/URLClassLoader.java
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ClassTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/URLClassLoader.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/URLClassLoader.java?view=diff&rev=474653&r1=474652&r2=474653
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/URLClassLoader.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/URLClassLoader.java Mon Nov 13 20:56:32 2006
@@ -1054,7 +1054,12 @@
                                     name).toString();
                         }
 
-                        filename = URLDecoder.decode(filename, "UTF-8");
+                        //Just return null for caller to throw ClassNotFoundException.
+                        try {
+                            filename = URLDecoder.decode(filename, "UTF-8");
+                        } catch (IllegalArgumentException e) {
+                            return null;
+                        }
 
                         File file = new File(filename);
                         // Don't throw exceptions for speed

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ClassTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ClassTest.java?view=diff&rev=474653&r1=474652&r2=474653
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ClassTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ClassTest.java Mon Nov 13 20:56:32 2006
@@ -148,6 +148,13 @@
             fail();
         } catch (ClassNotFoundException e) {
         }
+        
+        //regression test for JIRA 2162
+        try {
+            Class.forName("%");
+            fail("should throw ClassNotFoundException.");
+        } catch (ClassNotFoundException e) {
+        }
     }
 
     /**