Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 251624

Summary: StackOverflowError in org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelp.
Product: [WebTools] WTP Java EE Tools Reporter: Janelle Carroll <janelle>
Component: jst.jemAssignee: Janelle Carroll <janelle>
Status: RESOLVED FIXED QA Contact: Chuck Bridgham <cbridgha>
Severity: normal    
Priority: P3 CC: ccc, jsholl
Version: 3.0Flags: cbridgha: review+
Target Milestone: 3.0.3   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
patch for 301 none

Description Janelle Carroll CLA 2008-10-21 17:17:20 EDT
We have encountered this in an adopter product.

Caused by: java.lang.StackOverflowError
	at org.eclipse.jdt.internal.core.util.Util.equalArraysOrNull(Util.java:529)
	at org.eclipse.jdt.internal.core.PackageFragment.equals(PackageFragment.java:166)
	at org.eclipse.jdt.internal.core.ClassFile.equals(ClassFile.java:173)
	at org.eclipse.jdt.internal.core.JavaElement.equals(JavaElement.java:122)
	at org.eclipse.jdt.internal.core.SourceRefElement.equals(SourceRefElement.java:83)
	at org.eclipse.jdt.internal.core.BinaryType.equals(BinaryType.java:148)
	at java.util.Hashtable$Entry.equalsKey(Hashtable.java:129)
	at java.util.Hashtable.get(Hashtable.java:522)
	at org.eclipse.jdt.internal.core.util.LRUCache.get(LRUCache.java:217)
	at org.eclipse.jdt.internal.core.JavaModelCache.getInfo(JavaModelCache.java:106)
	at org.eclipse.jdt.internal.core.JavaModelManager.getInfo(JavaModelManager.java:1724)
	at org.eclipse.jdt.internal.core.ClassFile.existsUsingJarTypeCache(ClassFile.java:179)
	at org.eclipse.jdt.internal.core.NameLookup.seekTypesInBinaryPackage(NameLookup.java:999)
	at org.eclipse.jdt.internal.core.NameLookup.seekTypes(NameLookup.java:974)
	at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:771)
	at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:655)
	at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:614)
	at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:89)
	at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:275)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:122)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:181)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:456)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:510)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.resolveSingleImport(CompilationUnitScope.java:713)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:2440)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2181)
	at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:44)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:130)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:201)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType(TypeReference.java:179)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype(ClassScope.java:1167)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperInterfaces(ClassScope.java:958)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:1011)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:290)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:248)
	at org.eclipse.jdt.internal.codeassist.impl.Engine.accept(Engine.java:93)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:134)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:181)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:2460)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2181)
	at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:44)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:130)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:197)
	at org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.resolveType(ClassLiteralAccess.java:78)
	at org.eclipse.jdt.internal.compiler.ast.MemberValuePair.resolveTypeExpecting(MemberValuePair.java:84)
	at org.eclipse.jdt.internal.compiler.ast.Annotation.resolveType(Annotation.java:268)
	at org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveAnnotations(ASTNode.java:594)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getAnnotationTagBits(SourceTypeBinding.java:693)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:590)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:438)
	at org.eclipse.jdt.internal.codeassist.SelectionEngine.selectType(SelectionEngine.java:1179)
	at org.eclipse.jdt.internal.core.NamedMember.resolveType(NamedMember.java:292)
	at org.eclipse.jdt.internal.core.NamedMember.resolveType(NamedMember.java:245)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.getTypeNameInfo(JDOMSearchHelper.java:62)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.resolveSimpleTypeName(JDOMSearchHelper.java:181)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.getResolvedTypeName(JDOMSearchHelper.java:309)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:277)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)


	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findInnerJavaElement(JDOMSearchHelper.java:282)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findActualJavaElement(JDOMSearchHelper.java:258)
	at org.eclipse.jem.internal.adapters.jdom.JDOMSearchHelper.findType(JDOMSearchHelper.java:321)
	at org.eclipse.jem.internal.adapters.jdom.JavaClassJDOMAdaptor.reflectJavaClass(JavaClassJDOMAdaptor.java:398)
	at org.eclipse.jem.internal.adapters.jdom.JavaClassJDOMAdaptor.setImplements(JavaClassJDOMAdaptor.java:590)
	at org.eclipse.jem.internal.adapters.jdom.JavaClassJDOMAdaptor.reflectValues(JavaClassJDOMAdaptor.java:458)
	at org.eclipse.jem.internal.java.adapters.ReflectionAdaptor.reflectValuesIfNecessary(ReflectionAdaptor.java:143)
	at org.eclipse.jem.internal.java.adapters.JavaReflectionAdaptor.reflectValuesIfNecessary(JavaReflectionAdaptor.java:260)
	at org.eclipse.jem.java.internal.impl.JavaClassImpl.reflectBase(JavaClassImpl.java:769)
	at org.eclipse.jem.java.internal.impl.JavaClassImpl.getESuperTypes(JavaClassImpl.java:1663)
	at org.eclipse.emf.ecore.impl.EClassImpl.getEAllAttributes(EClassImpl.java:578)
	at org.eclipse.emf.ecore.impl.EClassImpl.eIsSet(EClassImpl.java:1136)
	at org.eclipse.jem.java.internal.impl.JavaClassImpl.eIsSet(JavaClassImpl.java:1300)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eIsSet(BasicEObjectImpl.java:1235)
	at org.eclipse.emf.ecore.util.EContentsEList$FeatureIteratorImpl.hasNext(EContentsEList.java:407)
	at org.eclipse.emf.ecore.util.EcoreUtil$CrossReferencer.handleCrossReference(EcoreUtil.java:1648)
	at org.eclipse.emf.ecore.util.EcoreUtil$CrossReferencer.crossReference(EcoreUtil.java:1626)
	at org.eclipse.emf.ecore.util.EcoreUtil$UsageCrossReferencer.findUsage(EcoreUtil.java:2427)
	at org.eclipse.emf.ecore.util.EcoreUtil$UsageCrossReferencer.find(EcoreUtil.java:2477)
	at org.eclipse.emf.ecore.util.EcoreUtil.delete(EcoreUtil.java:3069)
	at com.ibm.etools.javaee.merge.MergedModelAdapter2.dispose(MergedModelAdapter2.java:1222)
	at com.ibm.etools.javaee.model.internal.Ejb3ModelProvider.projectClosed(Ejb3ModelProvider.java:300)
	at org.eclipse.jem.util.emf.workbench.ResourceSetWorkbenchSynchronizer.notifyExtendersOfClose(ResourceSetWorkbenchSynchronizer.java:101)
	at org.eclipse.jem.util.emf.workbench.ResourceSetWorkbenchSynchronizer.resourceChanged(ResourceSetWorkbenchSynchronizer.java:82)
	at org.eclipse.wst.common.internal.emfworkbench.integration.ResourceSetWorkbenchEditSynchronizer.resourceChanged(ResourceSetWorkbenchEditSynchronizer.java:144)
	at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:288)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:282)
	at org.eclipse.core.internal.events.NotificationManager.handleEvent(NotificationManager.java:260)
	at org.eclipse.core.internal.resources.Workspace.broadcastEvent(Workspace.java:307)
	at org.eclipse.core.internal.resources.Resource.broadcastPreDeleteEvent(Resource.java:1772)
	at org.eclipse.core.internal.resources.Resource.delete(Resource.java:696)
	at org.eclipse.core.internal.resources.Project.delete(Project.java:309)
	at org.eclipse.ltk.core.refactoring.resource.DeleteResourceChange.perform(DeleteResourceChange.java:131)
	at org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
	at org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
	at org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:260)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
	at org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:308)
	at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.access$1(UIPerformChangeOperation.java:1)
	at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$1.run(UIPerformChangeOperation.java:66)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$2.run(UIPerformChangeOperation.java:84)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:173)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:382)
	at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(RefactoringWizardDialog2.java:317)
	at org.eclipse.ltk.ui.refactoring.RefactoringWizard.internalPerformFinish(RefactoringWizard.java:558)
	at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.performFinish(UserInputWizardPage.java:154)
	at org.eclipse.ltk.ui.refactoring.resource.DeleteResourcesWizard$DeleteResourcesRefactoringConfigurationPage.performFinish(DeleteResourcesWizard.java:147)
	at org.eclipse.ltk.ui.refactoring.RefactoringWizard.performFinish(RefactoringWizard.java:622)
	at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.okPressed(RefactoringWizardDialog2.java:446)
	at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:472)
	at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
	at org.eclipse.jface.window.Window.open(Window.java:801)
	at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:144)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:156)
	at org.eclipse.ltk.internal.ui.refactoring.actions.DeleteResourcesHandler.execute(DeleteResourcesHandler.java:41)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:281)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommandInContext(HandlerService.java:270)
	at org.eclipse.ui.internal.ide.actions.LTKLauncher.runCommand(LTKLauncher.java:95)
	at org.eclipse.ui.internal.ide.actions.LTKLauncher.openDeleteWizard(LTKLauncher.java:47)
	at org.eclipse.ui.actions.DeleteResourceAction.run(DeleteResourceAction.java:480)
	at org.eclipse.ui.actions.BaseSelectionListenerAction.runWithEvent(BaseSelectionListenerAction.java:168)
	at org.eclipse.ui.internal.navigator.resources.actions.TextActionHandler$DeleteActionHandler.runWithEvent(TextActionHandler.java:164)
	at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:119)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:472)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:824)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:882)
	at org.eclipse.ui.internal.keys.OutOfOrderListener.handleEvent(OutOfOrderListener.java:76)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1040)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1036)
	at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1653)
	at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:4122)
	at org.eclipse.swt.widgets.Tree.WM_KEYDOWN(Tree.java:5923)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3818)
	at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5791)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4541)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2371)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3420)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:599)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Comment 1 Janelle Carroll CLA 2008-10-21 17:19:18 EDT
Created attachment 115752 [details]
patch for 301
Comment 2 Chuck Bridgham CLA 2008-10-22 22:47:32 EDT
approved
Comment 3 Carl Anderson CLA 2008-10-23 09:42:52 EDT
Committed to R3_0_maintenance for 3.0.3