You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Benedikt Ritter (JIRA)" <ji...@apache.org> on 2015/04/18 20:17:58 UTC
[jira] [Updated] (LANG-1114) TypeUtils.ParameterizedType#equals
doesn't work with wildcard types
[ https://issues.apache.org/jira/browse/LANG-1114?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benedikt Ritter updated LANG-1114:
----------------------------------
Fix Version/s: Patch Needed
> TypeUtils.ParameterizedType#equals doesn't work with wildcard types
> -------------------------------------------------------------------
>
> Key: LANG-1114
> URL: https://issues.apache.org/jira/browse/LANG-1114
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.reflect.*
> Affects Versions: 3.3.2, 3.4
> Reporter: andrew coates
> Fix For: Patch Needed
>
>
> There is a bug in TypeUtils.equals(WilcardType, Type). It returns true if the other type is not a WildcardType, it should return false. See TypeUtils@1629 for v3.3.2 and TypeUtils@791 for v3.4
> Bug can be seen with the following test:
> {code}
> @Test
> public void shouldHandleEqualityOfParameterizedTypesWithWildcards() throws Exception {
> // Given:
> class SomeType {
> Collection<?> field;
> }
> final ParameterizedType wildcardCollectionType = (ParameterizedType) SomeType.class.getDeclaredField("field").getGenericType();
> final WildcardType wildcard = (WildcardType) wildcardCollectionType.getActualTypeArguments()[0];
> final ParameterizedType ptWithWildcard = TypeUtils.parameterize(Collection.class, wildcard);
> final ParameterizedType otherPt = TypeUtils.parameterize(Collection.class, String.class);
> // Then:
> assertThat(otherPt, is(not(equalTo(ptWithWildcard)))); // Passes
> assertThat(ptWithWildcard, is(not(equalTo(otherPt)))); // Fails
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)