Revision: 987
          http://stripes.svn.sourceforge.net/stripes/?rev=987&view=rev
Author:   bengunter
Date:     2008-10-22 16:15:54 +0000 (Wed, 22 Oct 2008)

Log Message:
-----------
Fixed STS-574. ReflectUtil.getActualTypeArguments() was only examining 
superclasses if the target type was not an interface. This caused the search to 
come up empty, for example, when one extends an existing type converter or 
formatter, where the type parameter is defined in the superclass. I just pulled 
the loop that adds superclasses to the search list out of an else block so that 
it always executes.

Modified Paths:
--------------
    trunk/stripes/src/net/sourceforge/stripes/util/ReflectUtil.java

Modified: trunk/stripes/src/net/sourceforge/stripes/util/ReflectUtil.java
===================================================================
--- trunk/stripes/src/net/sourceforge/stripes/util/ReflectUtil.java     
2008-10-22 02:44:31 UTC (rev 986)
+++ trunk/stripes/src/net/sourceforge/stripes/util/ReflectUtil.java     
2008-10-22 16:15:54 UTC (rev 987)
@@ -444,18 +444,16 @@
     public static Type[] getActualTypeArguments(Class<?> clazz, Class<?> 
targetType) {
         Set<Class<?>> classes = new HashSet<Class<?>>();
         classes.add(clazz);
-        
+
         if (targetType.isInterface())
             classes.addAll(getImplementedInterfaces(clazz));
-        else {
-            Class<?> superClass = clazz.getSuperclass();
-            while (superClass != null) {
-                classes.add(superClass);
-                superClass = superClass.getSuperclass();
-            }
+
+        Class<?> superClass = clazz.getSuperclass();
+        while (superClass != null) {
+            classes.add(superClass);
+            superClass = superClass.getSuperclass();
         }
-        
-            
+
         for (Class<?> search : classes) {
             for (Type type : (targetType.isInterface() ? 
search.getGenericInterfaces()
                     : new Type[] { search.getGenericSuperclass() })) {


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to