[ 
https://issues.apache.org/jira/browse/LANG-1420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary D. Gregory resolved LANG-1420.
-----------------------------------
    Fix Version/s: 3.12
       Resolution: Fixed

Fixed in git master but are there other issues with other Type extensions?

Please see 
[https://github.com/apache/commons-lang/pull/643#discussion_r523783371]

 

> TypeUtils.isAssignable returns wrong result for GenericArrayType and 
> ParameterizedType
> --------------------------------------------------------------------------------------
>
>                 Key: LANG-1420
>                 URL: https://issues.apache.org/jira/browse/LANG-1420
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.reflect.*
>    Affects Versions: 3.7, 3.8
>            Reporter: Gordon Fraser
>            Priority: Major
>             Fix For: 3.12
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> TypeUtils.isAssignable returns a wrong result when checking whether a 
> ParameterizedType is assignable to a GenericArrayType that has the same 
> ParameterizedType as component type.
> For example:
> {code:java}
> ParameterizedType componentType = 
> TypeUtils.parameterize(java.lang.reflect.Constructor.class, 
> java.awt.Insets.class);
> GenericArrayType arrayType = TypeUtils.genericArrayType(componentType);{code}
> In this case,
> {code:java}
> TypeUtils.isAssignable(arrayType, componentType) {code}
> returns true, but this should be false (the component type should not be 
> assignable to the array type - the Java compiler complains about this).
>  
> It seem that the problem is that the method:
> {code:java}
> private static boolean isAssignable(final Type type, final ParameterizedType 
> toParameterizedType, final Map<TypeVariable<?>, Type> typeVarAssigns){code}
> only compares the type parameters, since method getTypeArguments retrieves 
> the component type using getGenericComponentType. There seems to be no check 
> whether an array type is being assigned to a non-array in the first place.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to