aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java13
-rw-r--r--lib/bcel/bcel-src.zipbin879087 -> 879171 bytes
-rw-r--r--lib/bcel/bcel.jarbin607706 -> 607821 bytes
-rw-r--r--weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java6
-rw-r--r--weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java2
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
index bf7670c8c..1d7d84805 100644
--- a/lib/bcel/bcel-src.zip
+++ b/lib/bcel/bcel-src.zip
Binary files differ
diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar
index 5bcbec16b..493ffe6a2 100644
--- a/lib/bcel/bcel.jar
+++ b/lib/bcel/bcel.jar
Binary files differ
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);
}