Bug 152429 - Exception raised when trying to view type hierarchy
Summary: Exception raised when trying to view type hierarchy
Status: VERIFIED WORKSFORME
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.3 M4   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-01 04:38 EDT by Nikolay Nikolov CLA
Modified: 2007-02-05 05:04 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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