diff options
-rw-r--r-- | bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java | 13 | ||||
-rw-r--r-- | lib/bcel/bcel-src.zip | bin | 879087 -> 879171 bytes | |||
-rw-r--r-- | lib/bcel/bcel.jar | bin | 607706 -> 607821 bytes | |||
-rw-r--r-- | weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java | 6 | ||||
-rw-r--r-- | weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java | 2 |
5 files changed, 17 insertions, 4 deletions
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 <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @author David Dixon-Peugh */ public class ClassLoaderRepository implements Repository { + private static java.lang.ClassLoader bootClassLoader = null; private java.lang.ClassLoader loader; private WeakHashMap /*<String classname,JavaClass>*/loadedClassesLocalCache = new WeakHashMap(); private static Map /*<URL,JavaClass>*/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; } /** diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip Binary files differindex bf7670c8c..1d7d84805 100644 --- a/lib/bcel/bcel-src.zip +++ b/lib/bcel/bcel-src.zip diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar Binary files differindex 5bcbec16b..493ffe6a2 100644 --- a/lib/bcel/bcel.jar +++ b/lib/bcel/bcel.jar diff --git a/weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java b/weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java index ba208c751..bc0ca7bfd 100644 --- a/weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java +++ b/weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java @@ -15,6 +15,8 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Member; import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; import java.util.Collection; import java.util.Collections; @@ -40,6 +42,8 @@ import org.aspectj.weaver.patterns.PerClause; */ public class ReflectionBasedReferenceTypeDelegate implements ReferenceTypeDelegate { + private static final ClassLoader BootClassLoader = new URLClassLoader(new URL[0]); + protected Class myClass = null; protected ClassLoader classLoader = null; private World world; @@ -59,7 +63,7 @@ public class ReflectionBasedReferenceTypeDelegate implements ReferenceTypeDelega this.myClass = aClass; this.resolvedType = aType; this.world = aWorld; - this.classLoader = aClassLoader; + this.classLoader = (aClassLoader != null) ? aClassLoader : BootClassLoader; } protected Class getBaseClass() { diff --git a/weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java b/weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java index b6156fc5c..b5d63d7d1 100644 --- a/weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java +++ b/weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java @@ -63,7 +63,7 @@ public class Java15ReflectionBasedReferenceTypeDelegate extends myType = AjTypeSystem.getAjType(aClass); annotationFinder = new Java15AnnotationFinder(); argNameFinder = annotationFinder; - annotationFinder.setClassLoader(classLoader); + annotationFinder.setClassLoader(this.classLoader); this.typeConverter = new JavaLangTypeToResolvedTypeConverter(aWorld); } |