DATACMNS-855 - Prevent memory leak in SyntheticParameterizedType.

Added proper equals(…) and hashCode() methods to SyntheticParameterizedType to make sure instances created for the same type information and type parameters are considered equal.
This commit is contained in:
Oliver Gierke
2016-05-12 16:48:01 +02:00
parent f29cbf5752
commit 9db6278e77
2 changed files with 26 additions and 15 deletions

View File

@@ -382,6 +382,24 @@ public class ClassTypeInformationUnitTests {
assertThat(property.specialize(from), is((TypeInformation) from));
}
/**
* @see DATACMNS-855
*/
@Test
@SuppressWarnings("rawtypes")
public void specializedTypeEqualsAndHashCode() {
ClassTypeInformation<Foo> root = ClassTypeInformation.from(Foo.class);
TypeInformation<?> property = root.getProperty("abstractBar");
TypeInformation left = property.specialize(ClassTypeInformation.from(Bar.class));
TypeInformation right = property.specialize(ClassTypeInformation.from(Bar.class));
assertThat(left, is(right));
assertThat(right, is(left));
assertThat(left.hashCode(), is(right.hashCode()));
}
static class StringMapContainer extends MapContainer<String> {
}