diff --git a/classpath/java/lang/Class.java b/classpath/java/lang/Class.java index a69d11d41d..c0f3144f97 100644 --- a/classpath/java/lang/Class.java +++ b/classpath/java/lang/Class.java @@ -136,11 +136,15 @@ public final class Class implements Type, GenericDeclaration { private native void initialize(); public static Class forCanonicalName(String name) { + return forCanonicalName(null, name); + } + + public static Class forCanonicalName(ClassLoader loader, String name) { try { if (name.startsWith("[")) { - return forName(name); + return forName(name, true, loader); } else if (name.startsWith("L")) { - return forName(name.substring(1, name.length() - 1)); + return forName(name.substring(1, name.length() - 1), true, loader); } else { if (name.length() == 1) { return primitiveClass(name.charAt(0));