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