|
|
|
|
|
|
There is an infinite loop occurring in {{ TypeHelper.normalize() }} . The issue seems to occur any time a parameterized supertype is passed into {{ TypeHelper.isAssignable }} .
I was able to see that in my test cases, {{ ParameterizedType.getActualTypeArguments() }} is returning the same exact object as {{ Class.getTypeParameters() }} ... which causes {{ TypeHelper }} to create a map with an entry where Key = Value. Given the logic in {{ TypeHelper.normalize() }} , this in turn causes an infinite loop.
{code} private static <K, V> Map<K, V> normalize(Map<K, V> map) { // TODO: will this cause an infinite loop with recursive bounds?
for ( Entry<K, V> entry : map.entrySet() ) { K key = entry.getKey(); V value = entry.getValue();
while ( map.containsKey( value ) ) { value = map.get( value ); }
map.put( key, value ); }
return map; } {code}
I've attached a couple of test cases which illustrate the issue.
|
|
|
|
|
|