[jboss-cvs] JBossAS SVN: r74295 - projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Jun 8 18:33:05 EDT 2008


Author: flavia.rainone at jboss.com
Date: 2008-06-08 18:33:05 -0400 (Sun, 08 Jun 2008)
New Revision: 74295

Modified:
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/Advisor.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ClassAdvisor.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ClassContainer.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConByConInfo.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConByMethodInfo.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConstructionInfo.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConstructorInfo.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/FieldInfo.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/JoinPointInfo.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodByConInfo.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodByMethodInfo.java
   projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodInfo.java
Log:
[JBAOP-509] Removed default constructor of JoinPointInfo classes. The reason for this is to avoid the
registration of inconsistently created infos.

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/Advisor.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/Advisor.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/Advisor.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -437,7 +437,11 @@
          annotationNames.addAll(fieldMetaData.getTags());
       }
       annotationNames.addAll(this.getDefaultMetaData().getTags());
-      annotationNames.addAll(((Map) annotations.getAnnotations().get(field)).keySet());
+      Map annotationMap = (Map) annotations.getAnnotations().get(field);
+      if (annotationMap != null)
+      {
+         annotationNames.addAll(annotationMap.keySet());
+      }
       if (metadata != null)
       {
          MetaData componentMetaData = this.metadata.getComponentMetaData(new FieldSignature(field));
@@ -476,7 +480,11 @@
                getConstructorMetaData(constructor).getTags());
       }
       annotationNames.addAll(this.getDefaultMetaData().getTags());
-      annotationNames.addAll(((Map) annotations.getAnnotations().get(constructor)).keySet());      
+      Map annotationMap = (Map) annotations.getAnnotations().get(constructor);
+      if (annotationMap != null)
+      {
+         annotationNames.addAll(annotationMap.keySet());
+      }
       
       if (metadata != null)
       {
@@ -516,7 +524,11 @@
          annotationNames.addAll(this.getMethodMetaData().getMethodMetaData(method).getTags());
       }
       annotationNames.addAll(this.getDefaultMetaData().getTags());
-      annotationNames.addAll(((Map) annotations.getAnnotations().get(method)).keySet());
+      Map annotationMap = (Map) annotations.getAnnotations().get(method);
+      if (annotationMap != null)
+      {
+         annotationNames.addAll(annotationMap.keySet());
+      }
       if (metadata != null)
       {
          MetaData methodMetaData = this.metadata.getComponentMetaData(new MethodSignature(method));
@@ -863,6 +875,12 @@
       return doesHaveAspects;
    }
 
+   synchronized void adviceBindingRemoved(AdviceBinding binding)
+   {
+      adviceBindings.remove(binding);
+      doesHaveAspects = adviceBindings.size() > 0;
+   }
+   
    public synchronized void removeAdviceBinding(AdviceBinding binding)
    {
       adviceBindings.remove(binding);
@@ -1205,30 +1223,7 @@
       this.constructorInfos = new ConstructorInfo[constructors.length];
       for (int i = 0; i < constructors.length; i++)
       {
-         final ConstructorInfo info = new ConstructorInfo();
-         info.setConstructor(constructors[i]);
-         info.setIndex(i);
-         try
-         {
-            final String name = ConstructorExecutionTransformer.constructorFactory(clazz.getSimpleName());
-            final Class<?>[] types = constructors[i].getParameterTypes();
-            Method method = AccessController.doPrivileged(new PrivilegedExceptionAction<Method>()
-            {
-               public Method run() throws Exception
-               {
-                  return clazz.getDeclaredMethod(name, types);
-               }
-            });
-            info.setWrapper(method);
-         }
-         catch (PrivilegedActionException e1)
-         {
-            Exception e = e1.getException();
-            if (e instanceof NoSuchMethodException == false)
-               throw new NestedRuntimeException(e);
-         }
-
-         info.setAdvisor(this);
+         final ConstructorInfo info = new ConstructorInfo(this, constructors[i], i);
          constructorInfos[i] = info;
 
          try
@@ -1259,17 +1254,13 @@
       this.constructionInfos = new ConstructionInfo[constructors.length];
       for (int i = 0; i < constructors.length; i++)
       {
-         ConstructionInfo info = new ConstructionInfo();
-         info.setConstructor(constructors[i]);
-         info.setIndex(i);
-         info.setAdvisor(this);
-         constructionInfos[i] = info;
-
+         constructionInfos[i] = new ConstructionInfo(this, constructors[i], i);
+         
          try
          {
             Field infoField = clazz.getDeclaredField(ConstructionTransformer.getConstructionInfoFieldName(clazz.getSimpleName(), i));
             infoField.setAccessible(true);
-            infoField.set(null, new WeakReference<ConstructionInfo>(info));
+            infoField.set(null, new WeakReference<ConstructionInfo>(constructionInfos[i]));
          }
          catch (NoSuchFieldException e)
          {

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ClassAdvisor.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ClassAdvisor.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ClassAdvisor.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -449,15 +449,10 @@
       long[] keys = advisedMethods.keys();
       for (int i = 0; i < keys.length; i++)
       {
-         MethodInfo info = new MethodInfo();
          Method amethod = (Method) advisedMethods.get(keys[i]);
-         info.setAdvisedMethod(amethod);
          Method umethod = (Method) unadvisedMethods.get(keys[i]);
-
          if (umethod == null) umethod = amethod;
-         info.setUnadvisedMethod(umethod);
-         info.setHash(keys[i]);
-         info.setAdvisor(this);
+         MethodInfo info = new MethodInfo(this,keys[i], amethod, umethod);
          methodInfos.put(keys[i], info);
          try
          {
@@ -481,29 +476,13 @@
       this.fieldReadInfos = new FieldInfo[advisedFields.length];
       for (int i = 0; i < advisedFields.length; i++)
       {
-         FieldInfo info = new FieldInfo();
-         info.setAdvisedField(advisedFields[i]);
-         info.setAdvisor(this);
-         info.setIndex(i);
-
+         fieldReadInfos[i] = new FieldInfo(this, advisedFields[i], i, true);
+         
          try
          {
-            info.setWrapper(clazz.getDeclaredMethod(
-                  FieldAccessTransformer.fieldRead(advisedFields[i].getName()),
-                  new Class[] {Object.class}));
-         }
-         catch (NoSuchMethodException e)
-         {
-            //Just means not advised
-         }
-
-         fieldReadInfos[i] = info;
-
-         try
-         {
             Field infoField = clazz.getDeclaredField(FieldAccessTransformer.getFieldReadInfoFieldName(advisedFields[i].getName()));
             infoField.setAccessible(true);
-            infoField.set(null, new WeakReference<FieldInfo>(info));
+            infoField.set(null, new WeakReference<FieldInfo>(fieldReadInfos[i]));
          }
          catch (NoSuchFieldException e)
          {
@@ -521,29 +500,13 @@
       this.fieldWriteInfos = new FieldInfo[advisedFields.length];
       for (int i = 0; i < advisedFields.length; i++)
       {
-         FieldInfo info = new FieldInfo();
-         info.setAdvisedField(advisedFields[i]);
-         info.setAdvisor(this);
-         info.setIndex(i);
-
+         fieldWriteInfos[i] = new FieldInfo(this, advisedFields[i], i, false);
+         
          try
          {
-            info.setWrapper(clazz.getDeclaredMethod(
-                  FieldAccessTransformer.fieldWrite(advisedFields[i].getName()),
-                  new Class[] {Object.class, advisedFields[i].getType()}));
-         }
-         catch (NoSuchMethodException e)
-         {
-            //Just means not advised
-         }
-
-         fieldWriteInfos[i] = info;
-
-         try
-         {
             Field infoField = clazz.getDeclaredField(FieldAccessTransformer.getFieldWriteInfoFieldName(advisedFields[i].getName()));
             infoField.setAccessible(true);
-            infoField.set(null, new WeakReference<FieldInfo>(info));
+            infoField.set(null, new WeakReference<FieldInfo>(fieldWriteInfos[i]));
          }
          catch (NoSuchFieldException e)
          {
@@ -553,7 +516,6 @@
          {
             throw new RuntimeException(e);
          }
-
       }
    }
 

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ClassContainer.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ClassContainer.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ClassContainer.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -227,13 +227,8 @@
       long[] keys = advisedMethods.keys();
       for (int i = 0; i < keys.length; i++)
       {
-         MethodInfo info = new MethodInfo();
          Method amethod = (Method) advisedMethods.get(keys[i]);
-         info.setAdvisedMethod(amethod);
-         info.setUnadvisedMethod(amethod);
-         info.setHash(keys[i]);
-         info.setAdvisor(this);
-         methodInfos.put(keys[i], info);
+         methodInfos.put(keys[i], new MethodInfo(this, keys[i], amethod, amethod));
       }
    }
 

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConByConInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConByConInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConByConInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -50,6 +50,7 @@
          tempAdvisor = advisor.manager.getAdvisor(callingClass);
       }
       this.calling = tempAdvisor.constructors[callingIndex];
+      registry.register(this);
    }
    
    /*
@@ -60,6 +61,7 @@
       super(other);
       this.callingIndex = other.callingIndex;
       this.calling = other.getCallingConstructor();
+      registry.register(this);
    }
    
    protected Joinpoint internalGetJoinpoint()

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConByMethodInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConByMethodInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConByMethodInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -50,6 +50,7 @@
       super(advisor, calledClass, c, calledConHash, wrappingMethod, in, callingMethod.getDeclaringClass());
       this.callingMethodHash = callingMethodHash;
       this.callingMethod = callingMethod;
+      registry.register(this);
    }
 
    /*
@@ -60,6 +61,7 @@
       super(other);
       this.callingMethodHash = other.callingMethodHash;
       this.callingMethod = other.callingMethod;
+      registry.register(this);
    }
    
    protected Joinpoint internalGetJoinpoint()

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConstructionInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConstructionInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConstructionInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -27,7 +27,6 @@
 import org.jboss.aop.joinpoint.Construction;
 import org.jboss.aop.joinpoint.ConstructorJoinpoint;
 import org.jboss.aop.joinpoint.Joinpoint;
-import org.jboss.aop.pointcut.Pointcut;
 import org.jboss.aop.util.MethodHashing;
 
 /**
@@ -41,9 +40,12 @@
    private Constructor<?> constructor;
    private int index;
 
-   public ConstructionInfo()
+   public ConstructionInfo(Advisor advisor, Constructor constructor, int index)
    {
-      
+      super (advisor, constructor.getDeclaringClass());
+      this.constructor = constructor;
+      this.index = index;
+      registry.register(this);
    }
    
    public ConstructionInfo(Class<?> clazz, int index, long constructorHash, Advisor advisor)
@@ -59,6 +61,7 @@
       {
          throw new RuntimeException(e);
       }
+      registry.register(this);
    }
    
    /*
@@ -69,6 +72,7 @@
       super(other);
       this.constructor = other.constructor;
       this.index = other.index;
+      registry.register(this);
    }
    
    protected Joinpoint internalGetJoinpoint()

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConstructorInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConstructorInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/ConstructorInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -24,12 +24,16 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 
+import org.jboss.aop.instrument.ConstructorExecutionTransformer;
 import org.jboss.aop.joinpoint.ConstructorExecution;
 import org.jboss.aop.joinpoint.ConstructorJoinpoint;
 import org.jboss.aop.joinpoint.Joinpoint;
-import org.jboss.aop.pointcut.Pointcut;
 import org.jboss.aop.util.MethodHashing;
+import org.jboss.util.NestedRuntimeException;
 
 /**
  * Comment
@@ -43,8 +47,32 @@
    private Constructor<?> constructor;
    private int index;
    
-   public ConstructorInfo()
+   public ConstructorInfo(Advisor advisor, Constructor constructor, int index)
    {
+      super (advisor, constructor.getDeclaringClass());
+      this.constructor = constructor;
+      this.index = index;
+      final Class clazz = constructor.getDeclaringClass();
+      try
+      {
+         final String name = ConstructorExecutionTransformer.constructorFactory(clazz.getSimpleName());
+         final Class<?>[] types = constructor.getParameterTypes();
+         Method method = AccessController.doPrivileged(new PrivilegedExceptionAction<Method>()
+         {
+            public Method run() throws Exception
+            {
+               return clazz.getDeclaredMethod(name, types);
+            }
+         });
+         this.setWrapper(method);
+      }
+      catch (PrivilegedActionException e1)
+      {
+         Exception e = e1.getException();
+         if (e instanceof NoSuchMethodException == false)
+            throw new NestedRuntimeException(e);
+      }
+      registry.register(this);
    }
    
    public ConstructorInfo(Class<?> clazz, int index, long wrapperHash, long constructorHash, Advisor advisor)
@@ -55,12 +83,12 @@
          this.index = index;
          this.wrapper = MethodHashing.findMethodByHash(clazz, wrapperHash);
          this.constructor = MethodHashing.findConstructorByHash(clazz, constructorHash);
-         this.setAdvisor(advisor);
       }
       catch (Exception e)
       {
          throw new RuntimeException(e);
       }
+      registry.register(this);
    }
    
    /*
@@ -69,6 +97,10 @@
    private ConstructorInfo(ConstructorInfo other)
    {
       super(other);
+      this.constructor = other.constructor;
+      this.index = other.index;
+      this.wrapper = other.wrapper;
+      registry.register(this);
    }
    
    protected Joinpoint internalGetJoinpoint()

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/FieldInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/FieldInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/FieldInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -28,10 +28,10 @@
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 
+import org.jboss.aop.instrument.FieldAccessTransformer;
 import org.jboss.aop.joinpoint.FieldAccess;
 import org.jboss.aop.joinpoint.FieldJoinpoint;
 import org.jboss.aop.joinpoint.Joinpoint;
-import org.jboss.aop.pointcut.Pointcut;
 import org.jboss.aop.util.MethodHashing;
 
 /**
@@ -47,15 +47,32 @@
    private Method wrapper;
    private boolean read;
    
-   public FieldInfo()
+   public FieldInfo(Advisor advisor, Field advisedField, int index, boolean read)
    {
-      
-   }
-   
-   public FieldInfo(Advisor advisor, boolean read)
-   {
-      super(advisor, null);
+      super (advisor, advisedField.getDeclaringClass());
+      this.setAdvisedField(advisedField);
+      this.index = index;
       this.read = read;
+      try
+      {
+         if (read)
+         {
+            this.setWrapper(advisedField.getDeclaringClass().getDeclaredMethod(
+                  FieldAccessTransformer.fieldRead(advisedField.getName()),
+                  new Class[] {Object.class}));
+         }
+         else
+         {
+            this.setWrapper(advisedField.getDeclaringClass().getDeclaredMethod(
+                  FieldAccessTransformer.fieldWrite(advisedField.getName()),
+                  new Class[] {Object.class, advisedField.getType()}));
+         }
+      }
+      catch (NoSuchMethodException e)
+      {
+         //Just means not advised
+      }
+      registry.register(this);
    }
    
    public FieldInfo(Class<?> clazz, int index, String fieldName, long wrapperHash, Advisor advisor, boolean read)
@@ -76,6 +93,7 @@
       {
          throw new RuntimeException(e);
       }
+      registry.register(this);
    }
    
    /*
@@ -88,6 +106,7 @@
       this.advisedField = other.advisedField;
       this.wrapper = other.wrapper;
       this.read = other.read;
+      registry.register(this);
    }
    
    protected Joinpoint internalGetJoinpoint()

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -355,13 +355,8 @@
 
          if (matchInfo == null)
          {
-            MethodInfo info = new MethodInfo();
             Method amethod = (Method) advisedMethods.get(keys[i]);
-            info.setAdvisedMethod(amethod);
-            info.setUnadvisedMethod(amethod);
-            info.setHash(keys[i]);
-            info.setAdvisor(this);
-            methodInfos.put(keys[i], info);
+            methodInfos.put(keys[i], new MethodInfo(this, keys[i], amethod, amethod));
          }
       }
    }
@@ -525,10 +520,7 @@
          }
          else
          {
-            FieldInfo info = new FieldInfo(this, read);
-            info.setAdvisedField(advisedFields[i]);
-            info.setIndex(i);
-            newInfos[i] = info;
+            newInfos[i] = new FieldInfo(this, advisedFields[i], i, read);
          }
       }
 

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/JoinPointInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/JoinPointInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/JoinPointInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -36,7 +36,7 @@
 {
    // This field must be initialized by the JoinPointManager
    // Every subclass must register itself in this registry
-   static JoinPointRegistry REGISTRY;
+   static JoinPointRegistry registry;
    
    private ReentrantReadWriteLock interceptorChainLock = new ReentrantReadWriteLock();
 
@@ -53,11 +53,6 @@
    
    private String adviceString;
 
-   protected JoinPointInfo()
-   {
-      this.clazz = new WeakReference<Class<?>>(null);
-   }
-   
    protected JoinPointInfo(Advisor advisor, Class<?> clazz)
    {
       this.clazz = new WeakReference<Class<?>>(clazz); 

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodByConInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodByConInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodByConInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -28,7 +28,6 @@
 import org.jboss.aop.joinpoint.Joinpoint;
 import org.jboss.aop.joinpoint.MethodCallByConstructor;
 import org.jboss.aop.joinpoint.MethodCalledByConstructorJoinpoint;
-import org.jboss.aop.pointcut.Pointcut;
 
 /**
  * 
@@ -52,6 +51,7 @@
 	      tempAdvisor = advisor.manager.getAdvisor(callingClass);
       }
       calling = tempAdvisor.constructors[callingIndex];
+      registry.register(this);
    }
 
    /*
@@ -62,6 +62,7 @@
       super(other);
       this.callingIndex = other.callingIndex;
       this.calling = other.calling;
+      registry.register(this);
    }
    
    protected Joinpoint internalGetJoinpoint()

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodByMethodInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodByMethodInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodByMethodInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -43,6 +43,7 @@
       super(advisor, calledClass, m, calledMethodHash, in, callingMethod.getDeclaringClass());
       this.callingMethodHash = callingMethodHash;
       this.callingMethod = callingMethod;
+      registry.register(this);
    }
    
    /*
@@ -53,6 +54,7 @@
       super(other);
       this.callingMethodHash = other.callingMethodHash;
       this.callingMethod = other.callingMethod;
+      registry.register(this);
    }
    
    protected Joinpoint internalGetJoinpoint()

Modified: projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodInfo.java
===================================================================
--- projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodInfo.java	2008-06-08 22:26:16 UTC (rev 74294)
+++ projects/aop/branches/joinpoint_graph/aop/src/main/org/jboss/aop/MethodInfo.java	2008-06-08 22:33:05 UTC (rev 74295)
@@ -39,8 +39,13 @@
    public Method unadvisedMethod;
    private long hash;
    
-   public MethodInfo()
+   public MethodInfo(Advisor advisor, long hash, Method advisedMethod, Method unadvisedMethod)
    {
+      super (advisor, advisedMethod.getDeclaringClass());
+      this.setAdvisedMethod(advisedMethod);
+      this.setUnadvisedMethod(unadvisedMethod);
+      this.setHash(hash);
+      registry.register(this);
    }
    
    @SuppressWarnings("deprecation")
@@ -59,6 +64,7 @@
       {
          throw new RuntimeException(e);
       }
+      registry.register(this);
    }
    
    /*
@@ -71,6 +77,7 @@
       this.advisedMethod = other.advisedMethod;
       this.unadvisedMethod = other.unadvisedMethod;
       this.hash = other.hash;
+      registry.register(this);
    }
    
    protected Joinpoint internalGetJoinpoint()




More information about the jboss-cvs-commits mailing list