Community
Participate
Working Groups
I got a smallplugin that parses all the members of all known classes. I got a StackOberflowException when I parse some particular class (I found out that it was sun.misc.ProxyGenerator$ProxyMethod class on which I got this) Actually my method org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexType is called for every source and binary types found in all the package fragments of the particular Java project. My method in turn calls IType.getFields, IType.getMethods and IType.getSubTypes (). Here is the stacktrace. Actually there are some exceptions (like the first one) when I have no particular idea why they arise. The stacktrace is peovided below (partially of course :-)) ) The .log file contents: Log: Sun Jan 06 10:50:38 MSK 2002 4 org.eclipse.jdt.javadoc 0 MuxingAttributeNameEnumeration does not exist. Java Model Exception: Java Model Status [MuxingAttributeNameEnumeration does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getFields (BinaryType.java:130) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexType (Indexer.java:79) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:170) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 MuxingAttributeNameEnumeration does not exist. Log: Sun Jan 06 10:50:38 MSK 2002 4 org.eclipse.jdt.javadoc 0 MuxingAttributeNameEnumeration does not exist. Java Model Exception: Java Model Status [MuxingAttributeNameEnumeration does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getMethods (BinaryType.java:179) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexType (Indexer.java:101) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:170) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 MuxingAttributeNameEnumeration does not exist. Log: Sun Jan 06 10:50:38 MSK 2002 4 org.eclipse.jdt.javadoc 0 MuxingAttributeNameEnumeration does not exist. Java Model Exception: Java Model Status [MuxingAttributeNameEnumeration does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getTypes (BinaryType.java:262) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexType (Indexer.java:120) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:170) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 MuxingAttributeNameEnumeration does not exist. Log: Sun Jan 06 10:50:38 MSK 2002 4 org.eclipse.jdt.javadoc 0 ResolvedStyle does not exist. Java Model Exception: Java Model Status [ResolvedStyle does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getFields (BinaryType.java:130) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:135) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 ResolvedStyle does not exist. Log: Sun Jan 06 10:50:38 MSK 2002 4 org.eclipse.jdt.javadoc 0 ResolvedStyle does not exist. Java Model Exception: Java Model Status [ResolvedStyle does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getMethods (BinaryType.java:179) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:152) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 ResolvedStyle does not exist. Log: Sun Jan 06 10:50:38 MSK 2002 4 org.eclipse.jdt.javadoc 0 ResolvedStyle does not exist. Java Model Exception: Java Model Status [ResolvedStyle does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getTypes (BinaryType.java:262) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:166) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 ResolvedStyle does not exist. Log: Sun Jan 06 10:50:39 MSK 2002 4 org.eclipse.jdt.javadoc 0 ResolvedStyle does not exist. Java Model Exception: Java Model Status [ResolvedStyle does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getFields (BinaryType.java:130) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexType (Indexer.java:79) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:170) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 ResolvedStyle does not exist. Log: Sun Jan 06 10:50:39 MSK 2002 4 org.eclipse.jdt.javadoc 0 ResolvedStyle does not exist. Java Model Exception: Java Model Status [ResolvedStyle does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getMethods (BinaryType.java:179) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexType (Indexer.java:101) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:170) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 ResolvedStyle does not exist. Log: Sun Jan 06 10:50:39 MSK 2002 4 org.eclipse.jdt.javadoc 0 ResolvedStyle does not exist. Java Model Exception: Java Model Status [ResolvedStyle does not exist.] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException (JavaElement.java:448) at org.eclipse.jdt.internal.core.BinaryType.getChildren (BinaryType.java:95) at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType (JavaElement.java:233) at org.eclipse.jdt.internal.core.BinaryType.getTypes (BinaryType.java:262) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexType (Indexer.java:120) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:170) at org.eclipse.jdt.javadoc.internal.index.impl.Indexer.indexClass (Indexer.java:53) at test.Test.main(Test.java:30) at org.eclipse.jdt.javadoc.internal.views.ClassesSearchView$1.widgetSelected (ClassesSearchView.java:51) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:85) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:74) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:635) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1408) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1200) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:815) at org.eclipse.ui.internal.Workbench.run(Workbench.java:798) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:821) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:502) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 969 ResolvedStyle does not exist. Log: Sun Jan 06 10:51:24 MSK 2002 4 org.eclipse.jdt.javadoc 0 --- java.lang.StackOverflowError at java.lang.Class.newInstance(Class.java:237) at sun.io.Converters.newConverter(Converters.java:120) at sun.io.Converters.newDefaultConverter(Converters.java:215) at sun.io.CharToByteConverter.getDefault(CharToByteConverter.java:55) at java.lang.String.getBytes(String.java:685) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(ZipFile.java:110) at java.util.zip.ZipFile.<init>(ZipFile.java:75) at org.eclipse.jdt.internal.core.JavaModelManager.getZipFile (JavaModelManager.java:847) at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getJar (JarPackageFragmentRoot.java:427) at org.eclipse.jdt.internal.core.ClassFile.getBinaryTypeInfo (ClassFile.java:142) at org.eclipse.jdt.internal.core.ClassFile.generateInfos (ClassFile.java:108) at org.eclipse.jdt.internal.core.Openable.buildStructure (Openable.java:62) at org.eclipse.jdt.internal.core.Openable.openWhenClosed (Openable.java:370) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy (JavaElement.java:469) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo (JavaElement.java:267) at org.eclipse.jdt.internal.core.BinaryType.getClassFileInfo (BinaryType.java:103) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:39) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:45) at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:99) at org.eclipse.jdt.internal.core.ElementCache.close (ElementCache.java:49) at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry (OverflowingLRUCache.java:282) at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace (OverflowingLRUCache.java:168) at org.eclipse.jdt.internal.core.OverflowingLRUCache.shrink (OverflowingLRUCache.java:390) at org.eclipse.jdt.internal.core.OverflowingLRUCache.put (OverflowingLRUCache.java:315) at org.eclipse.jdt.internal.core.JavaModelManager.putInfo (JavaModelManager.java:934) at org.eclipse.jdt.internal.core.Openable.buildStructure (Openable.java:72) at org.eclipse.jdt.internal.core.Openable.openWhenClosed (Openable.java:370) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy (JavaElement.java:469) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo (JavaElement.java:267) at org.eclipse.jdt.internal.core.BinaryType.getClassFileInfo (BinaryType.java:103) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:39) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:45) at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:99) at org.eclipse.jdt.internal.core.ElementCache.close (ElementCache.java:49) at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry (OverflowingLRUCache.java:282) at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace (OverflowingLRUCache.java:168) at org.eclipse.jdt.internal.core.OverflowingLRUCache.shrink (OverflowingLRUCache.java:390) at org.eclipse.jdt.internal.core.OverflowingLRUCache.put (OverflowingLRUCache.java:315) at org.eclipse.jdt.internal.core.JavaModelManager.putInfo (JavaModelManager.java:934) at org.eclipse.jdt.internal.core.Openable.buildStructure (Openable.java:72) at org.eclipse.jdt.internal.core.Openable.openWhenClosed (Openable.java:370) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy (JavaElement.java:469) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo (JavaElement.java:267) at org.eclipse.jdt.internal.core.BinaryType.getClassFileInfo (BinaryType.java:103) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:39) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:45) at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:99) at org.eclipse.jdt.internal.core.ElementCache.close (ElementCache.java:49) at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry (OverflowingLRUCache.java:282) at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace (OverflowingLRUCache.java:168) at org.eclipse.jdt.internal.core.OverflowingLRUCache.shrink (OverflowingLRUCache.java:390) at org.eclipse.jdt.internal.core.OverflowingLRUCache.put (OverflowingLRUCache.java:315) at org.eclipse.jdt.internal.core.JavaModelManager.putInfo (JavaModelManager.java:934) at org.eclipse.jdt.internal.core.Openable.buildStructure (Openable.java:72) at org.eclipse.jdt.internal.core.Openable.openWhenClosed (Openable.java:370) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy (JavaElement.java:469) and so on and so on and so on at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:39) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:45) at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:99) at org.eclipse.jdt.internal.core.ElementCache.close (ElementCache.java:49) at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry (OverflowingLRUCache.java:282) at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace (OverflowingLRUCache.java:168) at org.eclipse.jdt.internal.core.OverflowingLRUCache.shrink (OverflowingLRUCache.java:390) at org.eclipse.jdt.internal.core.OverflowingLRUCache.put (OverflowingLRUCache.java:315) at org.eclipse.jdt.internal.core.JavaModelManager.putInfo (JavaModelManager.java:934) at org.eclipse.jdt.internal.core.Openable.buildStructure (Openable.java:72) at org.eclipse.jdt.internal.core.Openable.openWhenClosed (Openable.java:370) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy (JavaElement.java:469) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo (JavaElement.java:267) and the same exception once again
Stack overflow does not mean circularity, it simply means that the execution stack is too deep (too many nested method calls). Some of the operation performed by the JavaModel, like hierarchy creations can be somewhat expensive, and should be used reasonabily. As for the Java model exceptions you are seing, those are described in the API, e.g.: public interface IParent { /** * Returns the immediate children of this element. * Unless otherwise specified by the implementing element, * the children are in no particular order. * * @exception JavaModelException if this element does not exist or if an * exception occurs while accessing its corresponding resource */ IJavaElement[] getChildren() throws JavaModelException; So in brief, this bug does not necessarily indicate anything wrong in our implementation, but probably indicates your plugin is too intensive on CPU (you might want to play with the runtime stack size - setting on the VM side), or change your algorithm to be more lightweight. Is it ok to close ? Or do you have more specific information available that would clearly expose a bug in our code ?
Well, actually, bug reproduces even when java.exe runtime parameters include - Xss2M (2 megabyte of stack space per thread). I do think that this situation is abnormal.
Besides it seems that the pair of classe BinaryType and OverflowingLRUCache form some form of circular algorithm without an exit. Here is the circle element at org.eclipse.jdt.internal.core.BinaryType.getClassFileInfo (BinaryType.java:103) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:39) at org.eclipse.jdt.internal.core.BinaryType.close(BinaryType.java:45) at org.eclipse.jdt.internal.core.JavaElement.close(JavaElement.java:99) at org.eclipse.jdt.internal.core.ElementCache.close (ElementCache.java:49) at org.eclipse.jdt.internal.core.OverflowingLRUCache.privateRemoveEntry (OverflowingLRUCache.java:282) at org.eclipse.jdt.internal.core.OverflowingLRUCache.makeSpace (OverflowingLRUCache.java:168) at org.eclipse.jdt.internal.core.OverflowingLRUCache.shrink (OverflowingLRUCache.java:390) at org.eclipse.jdt.internal.core.OverflowingLRUCache.put (OverflowingLRUCache.java:315) at org.eclipse.jdt.internal.core.JavaModelManager.putInfo (JavaModelManager.java:934) at org.eclipse.jdt.internal.core.Openable.buildStructure (Openable.java:72) at org.eclipse.jdt.internal.core.Openable.openWhenClosed (Openable.java:370) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy (JavaElement.java:469) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo (JavaElement.java:267) I cannot find any reason for this functions to enter the infinite iterative loop thus overflowing the stack. There should be no case for this functions to call themselves infinely. And this IS an error.
Sounds nasty, need to investigate. What are the classfiles you are trying to open ? The content of the ouput location of a project ? These would pretend not to exist (since not on the classpath). But this doesn't explain why flushing the cache would cause an infinite loop.
First, the classfile is sun.misc.ProxyGenerator$ProxyMethod Second, the project's name is "Eclipse" and it has the default output location <Eclipse>/Workspace/Eclipse/bin Actually the problem may arise because of the VERY special nature of the class. And when you simply try to load this very class and find out its methods and attributes it works fine. The exception is only occures when you load class by class all Project classes and all JDK classes. I can supply the exact piece of code that reproduces the problem.
This would be very nice of you. A reproduceable scenario is exactly what we need.
Waiting for a test case. Please reopen when it becomes available
Waiting for information
Closing as never reproduced in a long time.