diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/PojoUtils.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/PojoUtils.java index 1996afdf86..65ff913475 100644 --- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/PojoUtils.java +++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/PojoUtils.java @@ -349,7 +349,8 @@ public class PojoUtils { if (method != null) { if (! method.isAccessible()) method.setAccessible(true); - value = realize(value, method.getParameterTypes()[0], history); + Type ptype = method.getGenericParameterTypes()[0]; + value = realize(value, method.getParameterTypes()[0], ptype, history); try { method.invoke(dest, value); } catch (Exception e) { diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/utils/PojoUtilsTest.java b/dubbo-common/src/test/java/com/alibaba/dubbo/common/utils/PojoUtilsTest.java index 1238e4792c..6dc16ee827 100644 --- a/dubbo-common/src/test/java/com/alibaba/dubbo/common/utils/PojoUtilsTest.java +++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/utils/PojoUtilsTest.java @@ -24,7 +24,6 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; -import org.junit.Ignore; import org.junit.Test; import com.alibaba.dubbo.common.model.Person; @@ -197,8 +196,6 @@ public class PojoUtilsTest { bigPerson.setInfoProfile(pi); } - // FIXME - @Ignore("Type missing, List -> List") @Test public void test_total() throws Exception { Object generalize = PojoUtils.generalize(bigPerson); @@ -207,8 +204,6 @@ public class PojoUtilsTest { assertEquals(bigPerson, realize); } - // FIXME - @Ignore("Type missing, List -> List") @Test public void test_total_Array() throws Exception { Object[] persons = new Object[] { bigPerson, bigPerson, bigPerson };