Closed guw closed 9 months ago
No other information in the log. This is programmatically using ASTParser. It's very likely something on the classpath. Still debugging.
Ok, so this is interesting. When traversing an ITypeBinding to discover all possible dependencies parameterized types can cause a recursion.
Example:
public class ExpandableArray<E> implements Serializable, Iterable<E>, Comparable<ExpandableArray> {
public ExpandableArray(ExpandableArray<? extends E> m) {
...
}
}
Here is what's happening:
-> type: ExpandableArray<common.udd.constants.CustomEntityOptionsBit>
-> method: public void <init>(ExpandableArray<? extends common.udd.constants.CustomEntityOptionsBit>)
-> methodBinding.getParameterTypes:
-> type: ExpandableArray<? extends common.udd.constants.CustomEntityOptionsBit>
...
-> type: ExpandableArray<? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ? extends ...
So turns out this was an unhandled piece in the recursion collection code.
if(binding.isParameterizedType()) {
// for parameterized types we look at the erasure and the type arguments only (https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1838)
collectDependenciesFromType(binding.getTypeDeclaration(), dependencies, processedTypes, monitor);
for (final ITypeBinding typeArgument : binding.getTypeArguments()) {
collectDependenciesFromType(typeArgument, dependencies, processedTypes, monitor);
}
return; // done
}
I got an interesting stacktrace today. This happens within a wildcard/intersection type. I wonder if this code needs some protection. I do suspect this is because of dealing with some generic speciality constructs in the code being analyzed.
Here is what I am doing:
Another possibility could be
class
files on the classpath processed by AspectJ.Version: 2023-12 (4.30.0) Build id: 20231201-2043