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/29 19:51:07 UTC
[jira] [Resolved] (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 resolved LANG-1114.
-----------------------------------
Resolution: Fixed
Fix Version/s: (was: Review Patch)
3.5
Fixed in 640953167adf3580a2c21077d78e7e7ce84ead03
> 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
> Assignee: Benedikt Ritter
> Fix For: 3.5
>
>
> 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)