Community
Participate
Working Groups
1) open type hierarchy on java.util.concurrent.ScheduledExecutorService 2) UI frozen in the following endless loop: java.lang.Thread.State: RUNNABLE at java.util.Arrays.hashCode(java.base@11.0.9.1/Arrays.java:4685) at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.hashCode(JarPackageFragmentRoot.java:381) at org.eclipse.jdt.internal.core.PackageFragment.hashCode(PackageFragment.java:450) at org.eclipse.jdt.internal.core.AbstractClassFile.hashCode(AbstractClassFile.java:398) at org.eclipse.jdt.internal.core.JavaElement.hashCode(JavaElement.java:548) at java.util.HashMap.hash(java.base@11.0.9.1/HashMap.java:339) at java.util.HashMap.get(java.base@11.0.9.1/HashMap.java:552) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.getSuperInterfaces(TypeHierarchy.java:716) at org.eclipse.jdt.internal.ui.typehierarchy.TraditionalHierarchyViewer$TraditionalHierarchyContentProvider.getDepth(TraditionalHierarchyViewer.java:86) at org.eclipse.jdt.internal.ui.typehierarchy.TraditionalHierarchyViewer$TraditionalHierarchyContentProvider.getExpandLevel(TraditionalHierarchyViewer.java:72) at org.eclipse.jdt.internal.ui.typehierarchy.TraditionalHierarchyViewer.updateContent(TraditionalHierarchyViewer.java:48) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.lambda$6(TypeHierarchyViewPart.java:1214) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart$$Lambda$2262/0x0000000801ae0440.run(Unknown Source) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.updateHierarchyViewer(TypeHierarchyViewPart.java:1215) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.updateViewers(TypeHierarchyViewPart.java:646) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.lambda$1(TypeHierarchyLifeCycle.java:284) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle$$Lambda$2261/0x0000000801ae0040.run(Unknown Source) Reproduced in an eclipse SDK installation (I20210502-1800) with both an 1.8 and 11 JRE configured. The issue seems to be introduced by bug 564093. The loop body always refers to same input and can't terminate: private int getDepth(ITypeHierarchy hierarchy, IType input) { int count= 0; if (Flags.isInterface(hierarchy.getCachedFlags(input))) { IType[] superInterfaces= hierarchy.getSuperInterfaces(input); while (superInterfaces != null && superInterfaces.length > 0) { count++; IType superInterface= hierarchy.getSuperInterfaces(input)[0]; superInterfaces= hierarchy.getSuperInterfaces(superInterface); } }
New Gerrit change created: https://git.eclipse.org/r/c/jdt/eclipse.jdt.ui/+/180180
Gerrit change https://git.eclipse.org/r/c/jdt/eclipse.jdt.ui/+/180180 was merged to [master]. Commit: http://git.eclipse.org/c/jdt/eclipse.jdt.ui.git/commit/?id=468b48fa7d363de5d6498701eaf65e9d941d4ef1
Released for 4.20 M3
Verified for 4.20 M3 using I20210518-0850 build