From 52c25536d8f9d8ad1438921e0542c259906a3793 Mon Sep 17 00:00:00 2001
From: mwebster <mwebster>
Date: Tue, 18 Jul 2006 10:18:05 +0000
Subject: Fix for Bug 150254 "Provide context for LTW verbose messages" (tidy
 up ClassLoaderWeavingAdaptor.initialize())

---
 loadtime/src/org/aspectj/weaver/loadtime/Aj.java   |  2 +-
 .../weaver/loadtime/ClassLoaderWeavingAdaptor.java | 24 +++++++++++++++++-----
 .../weaver/loadtime/WeavingURLClassLoader.java     |  2 +-
 3 files changed, 21 insertions(+), 7 deletions(-)

(limited to 'loadtime/src')

diff --git a/loadtime/src/org/aspectj/weaver/loadtime/Aj.java b/loadtime/src/org/aspectj/weaver/loadtime/Aj.java
index 015a245b3..33398f0c5 100644
--- a/loadtime/src/org/aspectj/weaver/loadtime/Aj.java
+++ b/loadtime/src/org/aspectj/weaver/loadtime/Aj.java
@@ -103,7 +103,7 @@ public class Aj implements ClassPreProcessor {
                 	} else {
 	                    // create it and put it back in the weavingAdaptors map but avoid any kind of instantiation
 	                    // within the synchronized block
-	                    ClassLoaderWeavingAdaptor weavingAdaptor = new ClassLoaderWeavingAdaptor(loader, weavingContext);
+	                    ClassLoaderWeavingAdaptor weavingAdaptor = new ClassLoaderWeavingAdaptor();
 	                    adaptor = new ExplicitlyInitializedClassLoaderWeavingAdaptor(weavingAdaptor);
 	                    weavingAdaptors.put(loader, adaptor);
                 	}
diff --git a/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java b/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java
index 7f6502361..1ea1397ca 100644
--- a/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java
+++ b/loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java
@@ -71,23 +71,35 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
     private List m_aspectIncludeStartsWith = new ArrayList();
 
     private StringBuffer namespace;
-    private ClassLoader classLoader;
     private IWeavingContext weavingContext;
 
 	private static Trace trace = TraceFactory.getTraceFactory().getTrace(ClassLoaderWeavingAdaptor.class);
     
-    public ClassLoaderWeavingAdaptor(final ClassLoader loader, IWeavingContext wContext) {
+    public ClassLoaderWeavingAdaptor() {
     	super();
     	if (trace.isTraceEnabled()) trace.enter("<init>",this);
-    	this.classLoader = loader;
-    	this.weavingContext = wContext;
+    	if (trace.isTraceEnabled()) trace.exit("<init>");
+    }
+    
+    /**
+     * We don't need a reference to the class loader and using it during 
+     * construction can cause problems with recursion. It also makes sense
+     * to supply the weaving context during initialization to. 
+     * @deprecated
+     */
+    public ClassLoaderWeavingAdaptor(final ClassLoader deprecatedLoader, final IWeavingContext deprecatedContext) {
+    	super();
+    	if (trace.isTraceEnabled()) trace.enter("<init>",this,new Object[] { deprecatedLoader, deprecatedContext });
     	if (trace.isTraceEnabled()) trace.exit("<init>");
     }
 
-    protected void initialize (final ClassLoader deprecatedLoader, IWeavingContext deprecatedContext) {
+    protected void initialize (final ClassLoader classLoader, IWeavingContext context) {
         //super(null);// at this stage we don't have yet a generatedClassHandler to define to the VM the closures
     	if (initialized) return;
 
+    	if (trace.isTraceEnabled()) trace.enter("initialize",this,new Object[] { classLoader, context });
+
+    	this.weavingContext = context;
         if (weavingContext == null) {
         	weavingContext = new DefaultWeavingContext(classLoader);
         }
@@ -116,6 +128,7 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
 
         List definitions = parseDefinitions(classLoader);
         if (!enabled) {
+        	if (trace.isTraceEnabled()) trace.exit("initialize",enabled);
         	return;
         }
         
@@ -149,6 +162,7 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
         }
         
         initialized = true;
+    	if (trace.isTraceEnabled()) trace.exit("initialize",enabled);
     }
 
     /**
diff --git a/loadtime/src/org/aspectj/weaver/loadtime/WeavingURLClassLoader.java b/loadtime/src/org/aspectj/weaver/loadtime/WeavingURLClassLoader.java
index 671b8e17a..2a3d19381 100644
--- a/loadtime/src/org/aspectj/weaver/loadtime/WeavingURLClassLoader.java
+++ b/loadtime/src/org/aspectj/weaver/loadtime/WeavingURLClassLoader.java
@@ -115,7 +115,7 @@ public class WeavingURLClassLoader extends ExtensibleURLClassLoader implements W
 					
 				};
 				
-				ClassLoaderWeavingAdaptor clwAdaptor = new ClassLoaderWeavingAdaptor(this,weavingContext);
+				ClassLoaderWeavingAdaptor clwAdaptor = new ClassLoaderWeavingAdaptor();
 				initializingAdaptor = true;
 				clwAdaptor.initialize(this,weavingContext);
 				initializingAdaptor = false;
-- 
cgit v1.2.3