From 0ad40253d6ade81422feaac3ae38ce8b16d0dcc9 Mon Sep 17 00:00:00 2001 From: Simon Kitching Date: Sun, 16 Apr 2006 12:01:57 +0000 Subject: [PATCH] Handle case of null parent classloader git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@394463 13f79535-47bb-0310-9956-ffa450edef68 --- .../commons/logging/PathableClassLoader.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/test/org/apache/commons/logging/PathableClassLoader.java b/src/test/org/apache/commons/logging/PathableClassLoader.java index cca09cb..4553745 100644 --- a/src/test/org/apache/commons/logging/PathableClassLoader.java +++ b/src/test/org/apache/commons/logging/PathableClassLoader.java @@ -246,7 +246,22 @@ public class PathableClassLoader extends URLClassLoader { return super.getResources(name); } else { Enumeration localUrls = super.findResources(name); - Enumeration parentUrls = getParent().getResources(name); + + ClassLoader parent = getParent(); + if (parent == null) { + // Alas, there is no method to get matching resources + // from a null (BOOT) parent classloader. Calling + // ClassLoader.getSystemClassLoader isn't right. Maybe + // calling Class.class.getResources(name) would do? + // + // However for the purposes of unit tests, we can + // simply assume that no relevant resources are + // loadable from the parent; unit tests will never be + // putting any of their resources in a "boot" classloader + // path! + return localUrls; + } + Enumeration parentUrls = parent.getResources(name); ArrayList localItems = Collections.list(localUrls); ArrayList parentItems = Collections.list(parentUrls);