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