diff --git a/src/test/java/com/fasterxml/jackson/failing/GenericParameterTypeFactory1456Test.java b/src/test/java/com/fasterxml/jackson/failing/GenericParameterTypeFactory1456Test.java new file mode 100644 index 00000000000..38a10778e5c --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/failing/GenericParameterTypeFactory1456Test.java @@ -0,0 +1,32 @@ +package com.fasterxml.jackson.failing; + + +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.Test; + +import java.lang.reflect.Method; +import java.lang.reflect.Type; + +import static org.junit.Assert.assertEquals; + +public class GenericParameterTypeFactory1456Test { + public static class BaseController { + public void process(Entity entity) {} + } + + public static class ImplController extends BaseController {} + + public static class BaseEntity {} + + public static class ImplEntity extends BaseEntity {} + + @Test + public void test() throws NoSuchMethodException { + Method proceed = BaseController.class.getMethod("proceed", BaseEntity.class); + Type entityType = proceed.getGenericParameterTypes()[0]; + + JavaType resolvedType = new ObjectMapper().getTypeFactory().constructType(entityType, ImplController.class); + assertEquals(ImplEntity.class, resolvedType.getRawClass()); + } +}