[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