Bug 152429

Summary: Exception raised when trying to view type hierarchy
Product: [Eclipse Project] JDT Reporter: Nikolay Nikolov <junkmail>
Component: CoreAssignee: Jerome Lanneluc <jerome_lanneluc>
Status: VERIFIED WORKSFORME QA Contact:
Severity: normal    
Priority: P3    
Version: 3.2   
Target Milestone: 3.3 M4   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Nikolay Nikolov CLA 2006-08-01 04:38:26 EDT
When trying to view type hierarchy of some of the classes, the progress bar in the bottom freezes at about 80% and after about 30 secs of waiting an error message appears "Creating Hierarchy failed. See log for details" and of course no hierarchy is displayed. Hierarchy does work for some of the classes but I could not define a specific rule about that.

The log contains the following exception. I've truncated the stack trace as bugzilla did not allow more than 65536 characters, but anyway the call subTypeOfType(HierarchyResolver.java:764) was repeated to the begining of it (which obviously caused the stack overflow).

eclipse.buildId=M20060629-1905
java.version=1.5.0_06
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=bg_BG
Command-line arguments:  -os win32 -ws win32 -arch x86

Error
Tue Aug 01 11:30:45 EEST 2006
Internal Error

java.lang.reflect.InvocationTargetException
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:350)
at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:763)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:760)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2283)
at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.ensureRefreshedTypeHierarchy(TypeHierarchyLifeCycle.java:107)
at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.updateInput(TypeHierarchyViewPart.java:521)
at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.setInputElement(TypeHierarchyViewPart.java:485)
at org.eclipse.jdt.internal.ui.typehierarchy.FocusOnTypeAction.run(FocusOnTypeAction.java:61)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: java.lang.StackOverflowError
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:756)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.subTypeOfType(HierarchyResolver.java:764)
Comment 1 Frederic Fusier CLA 2006-08-04 01:46:05 EDT
Any chance to have classes which produced this StackOverflow?
If your code is private then would it be possible to reproduce on a similar small test case?

In case not, then would it be possible to have the .log file
(in <wksp dir>/.metadata subdirectory)?

You can also start eclipse using a specific .options file including following lines:
  # Report type hierarchy connections, refreshes and deltas
  org.eclipse.jdt.core/debug/hierarchy=true

Then put the console output in a file and attach it to this bug.

Thanks
Comment 2 Nikolay Nikolov CLA 2006-08-21 08:20:28 EDT
Here are steps to reproduce (quite easy though)
  1. Open the hierarchy view in java perspective.
  2. Right click, and select "Focus on...".
  3. Choose java.util.Set.
  4. Press Enter.
You should get the above described error.
Comment 3 Jerome Lanneluc CLA 2007-01-11 07:29:45 EST
(In reply to comment #2)
> Here are steps to reproduce (quite easy though)
>   1. Open the hierarchy view in java perspective.
>   2. Right click, and select "Focus on...".
>   3. Choose java.util.Set.
>   4. Press Enter.
> You should get the above described error.
Following those steps and using 3.3 M4, I don't get any stack overflow errors.
Please reopen if you have more details.

Comment 4 Frederic Fusier CLA 2007-02-05 05:04:40 EST
Consider that it effectively works with 3.3 M4