From 135173acd2c893e5bfbb420e9cccf493ba150bfe Mon Sep 17 00:00:00 2001 From: acolyer Date: Fri, 18 Aug 2006 14:51:00 +0000 Subject: fix for pr153572 LTWWorld with Annotation finding and boot classes --- .../org/aspectj/apache/bcel/util/ClassLoaderRepository.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'bcel-builder') diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java index 1c1f0c359..6c30dade8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java @@ -59,6 +59,7 @@ import java.io.InputStream; import java.lang.ref.Reference; import java.lang.ref.SoftReference; import java.net.URL; +import java.net.URLClassLoader; import java.util.HashMap; import java.util.Map; import java.util.WeakHashMap; @@ -75,11 +76,12 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * * @see org.aspectj.apache.bcel.Repository * - * @version $Id: ClassLoaderRepository.java,v 1.6 2006/08/08 11:26:28 aclement Exp $ + * @version $Id: ClassLoaderRepository.java,v 1.7 2006/08/18 14:51:00 acolyer Exp $ * @author M. Dahm * @author David Dixon-Peugh */ public class ClassLoaderRepository implements Repository { + private static java.lang.ClassLoader bootClassLoader = null; private java.lang.ClassLoader loader; private WeakHashMap /**/loadedClassesLocalCache = new WeakHashMap(); private static Map /**/loadedUrlsSharedCache = new HashMap(); @@ -99,7 +101,14 @@ public class ClassLoaderRepository implements Repository { } public ClassLoaderRepository( java.lang.ClassLoader loader ) { - this.loader = loader; + this.loader = (loader != null) ? loader : getBootClassLoader(); + } + + private static synchronized java.lang.ClassLoader getBootClassLoader() { + if (bootClassLoader == null) { + bootClassLoader = new URLClassLoader(new URL[0]); + } + return bootClassLoader; } /** -- cgit v1.2.3