# HG changeset patch # User claes.redestad@oracle.com # Date 1410349595 -7200 # Wed Sep 10 13:46:35 2014 +0200 # Node ID fb08d0630a88998346b0c6ceb00f3103ea415e30 # Parent d4fb1717a6c2d5062d590314885e77cdf374b0c9 8057936: java.net.URLClassLoader.findClass uses exceptions in control flow Reviewed-by: michaelm diff --git a/src/java.base/share/classes/java/net/URLClassLoader.java b/src/java.base/share/classes/java/net/URLClassLoader.java --- a/src/java.base/share/classes/java/net/URLClassLoader.java +++ b/src/java.base/share/classes/java/net/URLClassLoader.java @@ -354,10 +354,10 @@ * @exception NullPointerException if {@code name} is {@code null}. */ protected Class findClass(final String name) - throws ClassNotFoundException - { + throws ClassNotFoundException { + final Class result; try { - return AccessController.doPrivileged( + result = AccessController.doPrivileged( new PrivilegedExceptionAction>() { public Class run() throws ClassNotFoundException { String path = name.replace('.', '/').concat(".class"); @@ -369,13 +369,17 @@ throw new ClassNotFoundException(name, e); } } else { - throw new ClassNotFoundException(name); + return null; } } }, acc); } catch (java.security.PrivilegedActionException pae) { throw (ClassNotFoundException) pae.getException(); } + if (result == null) { + throw new ClassNotFoundException(name); + } + return result; } /*