[jboss-cvs] JBossAS SVN: r106024 - in projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop: util and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jun 14 02:35:04 EDT 2010


Author: jiwils
Date: 2010-06-14 02:35:03 -0400 (Mon, 14 Jun 2010)
New Revision: 106024

Modified:
   projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop/annotation/PortableAnnotationElement.java
   projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop/util/ReflectToJavassist.java
Log:
Fix for JBPAPP-4456.  JBoss AOP now handles cases where classes were loaded by something other than AOP.

Modified: projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop/annotation/PortableAnnotationElement.java
===================================================================
--- projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop/annotation/PortableAnnotationElement.java	2010-06-14 05:53:53 UTC (rev 106023)
+++ projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop/annotation/PortableAnnotationElement.java	2010-06-14 06:35:03 UTC (rev 106024)
@@ -66,8 +66,9 @@
       }
       if(includeInvisibleAnnotation(annotation))
       {
-         CtField ctMethod = ReflectToJavassist.fieldToJavassist(field);
-         return AnnotationElement.isInvisibleAnnotationPresent(ctMethod, annotation);
+         CtField ctField = ReflectToJavassist.fieldToJavassist(field);
+         return ctField != null && AnnotationElement.
+            isInvisibleAnnotationPresent(ctField, annotation);
       }
       else
          return false;
@@ -166,7 +167,8 @@
       if(includeInvisibleAnnotation(annotation))
       {
          CtField ctField = ReflectToJavassist.fieldToJavassist(field);
-         return AnnotationElement.isAnyAnnotationPresent(ctField, annotation);
+         return ctField != null && AnnotationElement.
+            isAnyAnnotationPresent(ctField, annotation);
       }
       else
          return false;
@@ -228,8 +230,9 @@
       }
       if(includeInvisibleAnnotation(annotation))
       {
-         CtConstructor ctMethod = ReflectToJavassist.constructorToJavassist(con);
-         return AnnotationElement.isInvisibleAnnotationPresent(ctMethod, annotation);
+         CtConstructor ctConstructor = ReflectToJavassist.constructorToJavassist(con);
+         return ctConstructor != null && AnnotationElement.
+            isInvisibleAnnotationPresent(ctConstructor, annotation);
       }
       else
          return false;
@@ -279,8 +282,9 @@
          return true;
       if(includeInvisibleAnnotation(annotation))
       {
-         CtConstructor ctMethod = ReflectToJavassist.constructorToJavassist(con);
-         return AnnotationElement.isAnyAnnotationPresent(ctMethod, annotation);
+         CtConstructor ctConstructor = ReflectToJavassist.constructorToJavassist(con);
+         return ctConstructor != null && AnnotationElement.
+            isAnyAnnotationPresent(ctConstructor, annotation);
       }
       else
          return false;
@@ -468,8 +472,12 @@
       {
          try
          {
-            CtConstructor ctMethod = ReflectToJavassist.constructorToJavassist(con);
-            MethodInfo mi = ctMethod.getMethodInfo2();
+            CtConstructor ctConstructor = ReflectToJavassist.constructorToJavassist(con);
+            if (ctConstructor == null)
+            {
+               return null;
+            }
+            MethodInfo mi = ctConstructor.getMethodInfo2();
 
 
             AnnotationsAttribute invisible = (AnnotationsAttribute) mi.getAttribute(AnnotationsAttribute.invisibleTag);
@@ -495,6 +503,10 @@
       try
       {
          CtField ctField = ReflectToJavassist.fieldToJavassist(field);
+         if (ctField == null)
+         {
+            return null;
+         }
          FieldInfo mi = ctField.getFieldInfo2();
 
 
@@ -596,8 +608,9 @@
       }
       if(includeInvisibleAnnotation(annotation))
       {
-         CtField ctMethod = ReflectToJavassist.fieldToJavassist(field);
-         return isInvisibleAnnotationPresent(ctMethod, annotation.getName());
+         CtField ctField = ReflectToJavassist.fieldToJavassist(field);
+         return ctField != null && 
+            isInvisibleAnnotationPresent(ctField, annotation.getName());
       }
       else
          return false;
@@ -635,8 +648,9 @@
       }
       if(includeInvisibleAnnotation(annotation))
       {
-         CtConstructor ctMethod = ReflectToJavassist.constructorToJavassist(con);
-         return isVisibleAnnotationPresent(ctMethod, annotation.getName());
+         CtConstructor ctConstructor = ReflectToJavassist.constructorToJavassist(con);
+         return ctConstructor != null &&
+            isVisibleAnnotationPresent(ctConstructor, annotation.getName());
       }
       else
          return false;

Modified: projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop/util/ReflectToJavassist.java
===================================================================
--- projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop/util/ReflectToJavassist.java	2010-06-14 05:53:53 UTC (rev 106023)
+++ projects/aop/branches/JBoss_AOP_2_1_6_GA_CP/aop/src/main/java/org/jboss/aop/util/ReflectToJavassist.java	2010-06-14 06:35:03 UTC (rev 106024)
@@ -29,6 +29,7 @@
 import javassist.NotFoundException;
 
 import org.jboss.aop.AspectManager;
+import org.jboss.aop.util.logging.AOPLogger;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
@@ -43,6 +44,8 @@
  **/
 public class ReflectToJavassist
 {
+   private static final AOPLogger logger = AOPLogger.getLogger(ReflectToJavassist.class);
+   
    public static CtClass classToJavassist(Class<?> clazz) throws NotFoundException
    {
       ClassPool pool = AspectManager.instance().findClassPool(clazz);
@@ -52,7 +55,19 @@
    
    public static CtField fieldToJavassist(Field field) throws NotFoundException
    {
-      return classToJavassist(field.getDeclaringClass()).getField(field.getName());
+      try
+      {
+         return classToJavassist(field.getDeclaringClass()).getField(field.getName());
+      }
+      catch (NotFoundException nfe) {
+         if (AspectManager.verbose && logger.isDebugEnabled())
+         {
+            // JBAOP-734
+            logger.debug("Field " + field.getName() + " doesn't exist in "
+               + field.getDeclaringClass());
+         }
+      }
+      return null;
    }
    public static CtConstructor constructorToJavassist(Constructor<?> con) throws NotFoundException
    {



More information about the jboss-cvs-commits mailing list