Community
Participate
Working Groups
By accidentally writing "protected class R extends R { }" I triggered the following stack overflow: java.lang.StackOverflowError at org.eclipse.core.internal.resources.Resource.hashCode(Resource.java:1293) at org.eclipse.jdt.internal.core.PackageFragmentRoot.hashCode(PackageFragmentRoot.java:707) at org.eclipse.jdt.internal.core.PackageFragment.hashCode(PackageFragment.java:360) at org.eclipse.jdt.internal.core.JavaElement.hashCode(JavaElement.java:532) at org.eclipse.jdt.internal.core.JavaElement.hashCode(JavaElement.java:532) at org.eclipse.jdt.internal.core.JavaElement.hashCode(JavaElement.java:532) at java.util.HashMap.get(HashMap.java:300) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy._OT$getCachedFlags$orig(TypeHierarchy.java:536) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy._OT$getCachedFlags$chain(TypeHierarchy.java) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies$__OT__OTTypeHierarchyImpl._OT$ensureJavaType$base(OTTypeHierarchies.java) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies$__OT__OTTypeHierarchyImpl.ensureJavaType(OTTypeHierarchies.java:568) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies._OT$OTTypeHierarchyImpl$ensureJavaType$getCachedFlags(OTTypeHierarchies.java:201) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy._OT$getCachedFlags$chain(TypeHierarchy.java) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.getCachedFlags(TypeHierarchy.java) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isInterface(TypeHierarchy.java:1061) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy._OT$getSuperclass$orig(TypeHierarchy.java:670) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy._OT$getSuperclass$chain(TypeHierarchy.java) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy._OT$getSuperclass$chain(TypeHierarchy.java) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies$__OT__OTTypeHierarchyImpl._OT$getSuperclassLinearized$base(OTTypeHierarchies.java) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies$__OT__OTTypeHierarchyImpl.getSuperclassLinearized(OTTypeHierarchies.java:492) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies._OT$OTTypeHierarchyImpl$getSuperclassLinearized$getSuperclass(OTTypeHierarchies.java:161) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy._OT$getSuperclass$chain(TypeHierarchy.java) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies$__OT__OTTypeHierarchyImpl._OT$ensureJavaType$base(OTTypeHierarchies.java) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies$__OT__OTTypeHierarchyImpl.ensureJavaType(OTTypeHierarchies.java:568) at org.eclipse.objectteams.otdt.core.hierarchy.OTTypeHierarchies._OT$OTTypeHierarchyImpl$ensureJavaType$getSuperclass(OTTypeHierarchies.java:201) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy._OT$getSuperclass$chain(TypeHierarchy.java) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.getSuperclass(TypeHierarchy.java) at org.eclipse.objectteams.otdt.internal.core.RoleType.findSuperBaseClass(RoleType.java:265) at org.eclipse.objectteams.otdt.internal.core.RoleType.findBaseClass(RoleType.java:237) at org.eclipse.objectteams.otdt.internal.core.RoleType.getBaseClass(RoleType.java:157) at org.eclipse.objectteams.otdt.internal.core.RoleType.getBaseOf(RoleType.java:286) at org.eclipse.objectteams.otdt.internal.core.RoleType.findSuperBaseClass(RoleType.java:267) at org.eclipse.objectteams.otdt.internal.core.RoleType.findBaseClass(RoleType.java:237) at org.eclipse.objectteams.otdt.internal.core.RoleType.getBaseClass(RoleType.java:157) at org.eclipse.objectteams.otdt.internal.core.RoleType.getBaseOf(RoleType.java:286) at org.eclipse.objectteams.otdt.internal.core.RoleType.findSuperBaseClass(RoleType.java:267) ... Actually, R was overriding an inherited role, not sure if that's relevant for reproducing the bug.