]> source.dussan.org Git - aspectj.git/commitdiff
use a loader that can find the reflection delegate.
authoraclement <aclement>
Mon, 5 Jun 2006 08:45:33 +0000 (08:45 +0000)
committeraclement <aclement>
Mon, 5 Jun 2006 08:45:33 +0000 (08:45 +0000)
weaver/src/org/aspectj/weaver/ltw/LTWWorld.java
weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegateFactory.java

index 2a9db1024569d08822285339b5ce6a8585bd2b70..901c9e4ba3a22d1acab9dc3b146323e6c4521537 100644 (file)
@@ -105,7 +105,7 @@ public class LTWWorld extends BcelWorld implements IReflectionWorld {
         if (fc=='j' || fc=='c' || fc=='o' || fc=='s') { // cheaper than imminent string startsWith tests
                if (name.startsWith("java") || name.startsWith("com.sun.") || name.startsWith("org.w3c") || 
                        name.startsWith("sun.") || name.startsWith("org.omg")) {
-                       ReferenceTypeDelegate bootstrapLoaderDelegate = resolveReflectionTypeDelegate(ty, null);
+                       ReferenceTypeDelegate bootstrapLoaderDelegate = resolveReflectionTypeDelegate(ty, loader);
                        if (bootstrapLoaderDelegate != null) {
                            // it's always fine to load these bytes: there's no weaving into them
                            // and since the class isn't initialized, all we are doing at this point is loading the bytes
index ab0c2eb6a2a12f0cbefaebc5ce7cc7827e0f7d19..55bbab823a4d7092b146ec2d9de8745f07b38d29 100644 (file)
@@ -51,13 +51,12 @@ public class ReflectionBasedReferenceTypeDelegateFactory {
        // can return 'null' if we can't find the class
        private static ReflectionBasedReferenceTypeDelegate create15Delegate(ReferenceType forReferenceType, Class forClass, ClassLoader usingClassLoader, World inWorld) {
                try {
-                       Class delegateClass = Class.forName("org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate");//,false,usingClassLoader);//ReflectionBasedReferenceTypeDelegate.class.getClassLoader()); 
+                       Class delegateClass = Class.forName("org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate",true,usingClassLoader);//,false,usingClassLoader);//ReflectionBasedReferenceTypeDelegate.class.getClassLoader()); 
                        ReflectionBasedReferenceTypeDelegate ret = (ReflectionBasedReferenceTypeDelegate) delegateClass.newInstance();
                        ret.initialize(forReferenceType,forClass,usingClassLoader,inWorld);
                        return ret;
                } catch (ClassNotFoundException cnfEx) {
-                       return null;
-                       //throw new IllegalStateException("Attempted to create Java 1.5 reflection based delegate but org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate was not found on classpath");
+                       throw new IllegalStateException("Attempted to create Java 1.5 reflection based delegate but org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate was not found on classpath");
                } catch (InstantiationException insEx) {
                        throw new IllegalStateException("Attempted to create Java 1.5 reflection based delegate but InstantiationException: " + insEx + " occured");
                } catch (IllegalAccessException illAccEx) {