[weld-commits] Weld SVN: r4616 - in core/trunk: tests/src/test/java/org/jboss/weld/test/unit/reflection/method and 1 other directory.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Tue Nov 3 09:43:29 EST 2009


Author: pete.muir at jboss.org
Date: 2009-11-03 09:43:29 -0500 (Tue, 03 Nov 2009)
New Revision: 4616

Modified:
   core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java
   core/trunk/tests/src/test/java/org/jboss/weld/test/unit/reflection/method/WeldMethodTest.java
Log:
WELD-221

Modified: core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java	2009-11-03 14:16:06 UTC (rev 4615)
+++ core/trunk/impl/src/main/java/org/jboss/weld/util/Reflections.java	2009-11-03 14:43:29 UTC (rev 4616)
@@ -198,19 +198,19 @@
             {
                return resolveParameterizedType((ParameterizedType) beanType, (ParameterizedType) type);
             }
-            if (beanType instanceof Class)
+            if (beanType instanceof Class<?>)
             {
                return resolveType(((Class<?>) beanType).getGenericSuperclass(), type);
             }
          }
 
-         if (type instanceof TypeVariable)
+         if (type instanceof TypeVariable<?>)
          {
             if (beanType instanceof ParameterizedType)
             {
                return resolveTypeParameter((ParameterizedType) beanType, (TypeVariable<?>) type);
             }
-            if (beanType instanceof Class)
+            if (beanType instanceof Class<?>)
             {
                return resolveType(((Class<?>) beanType).getGenericSuperclass(), type);
             }
@@ -242,7 +242,7 @@
          Type[] actualTypes = beanType.getActualTypeArguments();
          for (int i = 0; i < typeVariables.length; i++)
          {
-            if (typeVariables[i].equals(typeVariable))
+            if (typeVariables[i].equals(typeVariable) && !actualTypes[i].equals(typeVariable))
             {
                return resolveType(type, actualTypes[i]);
             }

Modified: core/trunk/tests/src/test/java/org/jboss/weld/test/unit/reflection/method/WeldMethodTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/test/unit/reflection/method/WeldMethodTest.java	2009-11-03 14:16:06 UTC (rev 4615)
+++ core/trunk/tests/src/test/java/org/jboss/weld/test/unit/reflection/method/WeldMethodTest.java	2009-11-03 14:43:29 UTC (rev 4616)
@@ -16,11 +16,12 @@
    private final ClassTransformer transformer = new ClassTransformer(new TypeStore());
    private final Class<Choice<?, ?>> CHOICE_LITERAL = new TypeLiteral<Choice<?, ?>>() {}.getRawType();
    
-   @Test(groups = "broken", description = "WELD-221")
-   public void testNonStaticInnerClassWithGenericTypes() throws Exception
+   @Test(description = "WELD-221")
+   public void testMethodReturnsGenericTypeOfClass() throws Exception
    {
       WeldClass<Choice<?, ?>> clazz = WeldClassImpl.of(CHOICE_LITERAL, transformer);
       WeldMethod<Choice<?, ?>, Choice<?, ?>> method = WeldMethodImpl.of(Choice.class.getMethod("aMethod"), clazz, transformer);
+      assert method.getTypeClosure().size() == 3;
    }
 
 }



More information about the weld-commits mailing list