OpenJDK / jdk / jdk
changeset 49117:0a93645a57f1
8198810: URLClassLoader does not specify behavior when URL array contains null
Reviewed-by: alanb, darcy, dholmes
author | martin |
---|---|
date | Thu, 01 Mar 2018 19:01:34 -0800 |
parents | ef9ddc426975 |
children | dbbbf6d7cf6e |
files | src/java.base/share/classes/java/net/URLClassLoader.java test/jdk/java/net/URLClassLoader/NullURLTest.java |
diffstat | 2 files changed, 54 insertions(+), 47 deletions(-) [+] |
line wrap: on
line diff
--- a/src/java.base/share/classes/java/net/URLClassLoader.java Thu Mar 01 13:08:06 2018 +0100 +++ b/src/java.base/share/classes/java/net/URLClassLoader.java Thu Mar 01 19:01:34 2018 -0800 @@ -105,7 +105,8 @@ * @exception SecurityException if a security manager exists and its * {@code checkCreateClassLoader} method doesn't allow * creation of a class loader. - * @exception NullPointerException if {@code urls} is {@code null}. + * @exception NullPointerException if {@code urls} or any of its + * elements is {@code null}. * @see SecurityManager#checkCreateClassLoader */ public URLClassLoader(URL[] urls, ClassLoader parent) { @@ -149,7 +150,8 @@ * @exception SecurityException if a security manager exists and its * {@code checkCreateClassLoader} method doesn't allow * creation of a class loader. - * @exception NullPointerException if {@code urls} is {@code null}. + * @exception NullPointerException if {@code urls} or any of its + * elements is {@code null}. * @see SecurityManager#checkCreateClassLoader */ public URLClassLoader(URL[] urls) { @@ -192,7 +194,8 @@ * @exception SecurityException if a security manager exists and its * {@code checkCreateClassLoader} method doesn't allow * creation of a class loader. - * @exception NullPointerException if {@code urls} is {@code null}. + * @exception NullPointerException if {@code urls} or any of its + * elements is {@code null}. * @see SecurityManager#checkCreateClassLoader */ public URLClassLoader(URL[] urls, ClassLoader parent, @@ -221,7 +224,8 @@ * @param parent the parent class loader for delegation * * @throws IllegalArgumentException if the given name is empty. - * @throws NullPointerException if {@code urls} is {@code null}. + * @throws NullPointerException if {@code urls} or any of its + * elements is {@code null}. * * @throws SecurityException if a security manager exists and its * {@link SecurityManager#checkCreateClassLoader()} method doesn't @@ -256,7 +260,8 @@ * @param factory the URLStreamHandlerFactory to use when creating URLs * * @throws IllegalArgumentException if the given name is empty. - * @throws NullPointerException if {@code urls} is {@code null}. + * @throws NullPointerException if {@code urls} or any of its + * elements is {@code null}. * * @throws SecurityException if a security manager exists and its * {@code checkCreateClassLoader} method doesn't allow @@ -805,7 +810,8 @@ * * @param urls the URLs to search for classes and resources * @param parent the parent class loader for delegation - * @exception NullPointerException if {@code urls} is {@code null}. + * @exception NullPointerException if {@code urls} or any of its + * elements is {@code null}. * @return the resulting class loader */ public static URLClassLoader newInstance(final URL[] urls, @@ -831,7 +837,8 @@ * loading the class. * * @param urls the URLs to search for classes and resources - * @exception NullPointerException if {@code urls} is {@code null}. + * @exception NullPointerException if {@code urls} or any of its + * elements is {@code null}. * @return the resulting class loader */ public static URLClassLoader newInstance(final URL[] urls) {
--- a/test/jdk/java/net/URLClassLoader/NullURLTest.java Thu Mar 01 13:08:06 2018 +0100 +++ b/test/jdk/java/net/URLClassLoader/NullURLTest.java Thu Mar 01 19:01:34 2018 -0800 @@ -71,14 +71,14 @@ } catch (NullPointerException e) { // expected } - // This section should be uncommented if 8026517 is fixed. -// try { -// loader = new URLClassLoader(invalidURLArray); -// System.err.println("URLClassLoader(invalidURLArray) did not throw NPE"); -// failures++; -// } catch (NullPointerException e) { -// // expected -// } + + try { + loader = new URLClassLoader(invalidURLArray); + System.err.println("URLClassLoader(invalidURLArray) did not throw NPE"); + failures++; + } catch (NullPointerException e) { + // expected + } try { loader = new URLClassLoader(validURLArray, null); @@ -93,14 +93,14 @@ } catch (NullPointerException e) { // expected } - // This section should be uncommented if 8026517 is fixed. -// try { -// loader = new URLClassLoader(invalidURLArray, null); -// System.err.println("URLClassLoader(invalidURLArray, null) did not throw NPE"); -// failures++; -// } catch (NullPointerException e) { -// // expected -// } + + try { + loader = new URLClassLoader(invalidURLArray, null); + System.err.println("URLClassLoader(invalidURLArray, null) did not throw NPE"); + failures++; + } catch (NullPointerException e) { + // expected + } try { loader = new URLClassLoader(validURLArray, null, null); @@ -115,14 +115,14 @@ } catch (NullPointerException e) { // expected } - // This section should be uncommented if 8026517 is fixed. -// try { -// loader = new URLClassLoader(invalidURLArray, null, null); -// System.err.println("URLClassLoader(invalidURLArray, null, null) did not throw NPE"); -// failures++; -// } catch (NullPointerException e) { -// // expected -// } + + try { + loader = new URLClassLoader(invalidURLArray, null, null); + System.err.println("URLClassLoader(invalidURLArray, null, null) did not throw NPE"); + failures++; + } catch (NullPointerException e) { + // expected + } try { loader = URLClassLoader.newInstance(validURLArray); @@ -137,14 +137,14 @@ } catch (NullPointerException e) { // expected } - // This section should be uncommented if 8026517 is fixed. -// try { -// loader = URLClassLoader.newInstance(invalidURLArray); -// System.err.println("URLClassLoader.newInstance(invalidURLArray) did not throw NPE"); -// failures++; -// } catch (NullPointerException e) { -// // expected -// } + + try { + loader = URLClassLoader.newInstance(invalidURLArray); + System.err.println("URLClassLoader.newInstance(invalidURLArray) did not throw NPE"); + failures++; + } catch (NullPointerException e) { + // expected + } try { loader = URLClassLoader.newInstance(validURLArray, null); @@ -159,14 +159,14 @@ } catch (NullPointerException e) { // expected } - // This section should be uncommented if 8026517 is fixed. -// try { -// loader = URLClassLoader.newInstance(invalidURLArray, null); -// System.err.println("URLClassLoader.newInstance(invalidURLArray, null) did not throw NPE"); -// failures++; -// } catch (NullPointerException e) { -// // expected -// } + + try { + loader = URLClassLoader.newInstance(invalidURLArray, null); + System.err.println("URLClassLoader.newInstance(invalidURLArray, null) did not throw NPE"); + failures++; + } catch (NullPointerException e) { + // expected + } if (failures != 0) { throw new Exception("URLClassLoader NullURLTest had "+failures+" failures!");