[jboss-cvs] JBossAS SVN: r106452 - projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jul 6 11:58:23 EDT 2010
Author: kabir.khan at jboss.com
Date: 2010-07-06 11:58:22 -0400 (Tue, 06 Jul 2010)
New Revision: 106452
Modified:
projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/ClassInfoImpl.java
projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/InheritableAnnotationHolder.java
Log:
[JBREFLECT-132] Take into account that superclass might not always be an instance of InheritableAnnotationHolder
Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/ClassInfoImpl.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/ClassInfoImpl.java 2010-07-06 15:51:53 UTC (rev 106451)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/ClassInfoImpl.java 2010-07-06 15:58:22 UTC (rev 106452)
@@ -660,9 +660,9 @@
}
@Override
- protected InheritableAnnotationHolder getSuperHolder()
+ protected ClassInfo getSuperHolder()
{
- return (ClassInfoImpl) getSuperclass();
+ return getSuperclass();
}
@Override
Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/InheritableAnnotationHolder.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/InheritableAnnotationHolder.java 2010-07-06 15:51:53 UTC (rev 106451)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/InheritableAnnotationHolder.java 2010-07-06 15:58:22 UTC (rev 106452)
@@ -27,6 +27,7 @@
import java.util.Map;
import org.jboss.reflect.spi.AnnotationValue;
+import org.jboss.reflect.spi.ClassInfo;
/**
* An annotation holder
@@ -162,7 +163,7 @@
*/
public void setupAnnotations(AnnotationValue[] annotations)
{
- InheritableAnnotationHolder superHolder = getSuperHolder();
+ ClassInfo superHolder = getSuperHolder();
AnnotationValue[] superAllAnnotations = (superHolder != null) ? superHolder.getAnnotations() : null;
if (annotations != null && annotations.length > 0)
@@ -196,7 +197,23 @@
{
if (superHolder != null)
{
- allAnnotations = superHolder.getAllAnnotations();
+ if (superHolder instanceof InheritableAnnotationHolder)
+ allAnnotations = ((InheritableAnnotationHolder)superHolder).getAllAnnotations();
+ else
+ {
+ allAnnotations = new HashMap<String, AnnotationValue>(superAllAnnotations.length);
+ if (superAllAnnotations.length == 0)
+ {
+ for (int i = 0 ; i < superAllAnnotations.length ; i++)
+ {
+ AnnotationValue av = superAllAnnotations[i];
+ if (av.getAnnotationType().isAnnotationPresent(INHERITED_NAME))
+ {
+ allAnnotations.put(av.getAnnotationType().getName(), av);
+ }
+ }
+ }
+ }
allAnnotationsArray = superAllAnnotations;
}
}
@@ -207,5 +224,5 @@
*
* @return the super holder
*/
- protected abstract InheritableAnnotationHolder getSuperHolder();
+ protected abstract ClassInfo getSuperHolder();
}
More information about the jboss-cvs-commits
mailing list