Sometimes when I get the Type Hierarchy of a given class, I get duplicated entries.
In the following screenshot you can see duplicated entries of AbstractCustomDispatch.
I copied the fully qualified name of both classes and noticed that the entry on the top is inside a fictional package that has an additional src. right at the beginning. The real package starts with aq.
Additional info
AbstractCustomDispatch and all of its subclasses are ours i.e. they are present in the workspace as source code.
- The subclasses are in different plugins
- The methods of the
AbstractCustomDispatch that is found under src.aq... (and the methods of its subclasses) are missing 👎
- The methods of the
AbstractCustomDispatch that is found under aq... (and the methods of its subclasses) are there 👍
I am not able to consistently reproduce the error but I just happen to run into it today and I started debugging.
Current findings
My assumption is that the type AbstractCustomDispatch is still not completely discovered by the time its first 3 subclasses are being populated and it is completely known (and it's known to be in the workspace) by the time the rest of its subclasses are being computed.
I set a breakpoint in here
|
superclass = findSuperClass(suppliedType, typeBinding); |
And noticed that the return values of findSuperClass(suppliedType, typeBinding) are different for some subclasses.
For example here are the parameters and the result of the call when analyzing CloseKeyEventDispatch (which is one of the 3 subclasses that is missing the methods in a previous screenshot👎 )
And here's how it looks when analyzing CutAndCopyDispatchReplacement (which is one of the subclasses that has all its methods in the hierarchy view 👍): members are there and AbstractCustomDispatch does not show (not open) anymore.

Sometimes when I get the Type Hierarchy of a given class, I get duplicated entries.
In the following screenshot you can see duplicated entries of
AbstractCustomDispatch.I copied the fully qualified name of both classes and noticed that the entry on the top is inside a fictional package that has an additional
src.right at the beginning. The real package starts withaq.Additional info
AbstractCustomDispatchand all of its subclasses are ours i.e. they are present in the workspace as source code.AbstractCustomDispatchthat is found undersrc.aq...(and the methods of its subclasses) are missing 👎AbstractCustomDispatchthat is found underaq...(and the methods of its subclasses) are there 👍I am not able to consistently reproduce the error but I just happen to run into it today and I started debugging.
Current findings
My assumption is that the type
AbstractCustomDispatchis still not completely discovered by the time its first 3 subclasses are being populated and it is completely known (and it's known to be in the workspace) by the time the rest of its subclasses are being computed.I set a breakpoint in here
eclipse.jdt.core/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/hierarchy/HierarchyResolver.java
Line 605 in 1ec8da7
And noticed that the return values of
findSuperClass(suppliedType, typeBinding)are different for some subclasses.For example here are the parameters and the result of the call when analyzing
CloseKeyEventDispatch(which is one of the 3 subclasses that is missing the methods in a previous screenshot👎 )And here's how it looks when analyzing
CutAndCopyDispatchReplacement(which is one of the subclasses that has all its methods in the hierarchy view 👍): members are there andAbstractCustomDispatchdoes not show(not open)anymore.