[
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)