Bug 47213 - Inefficient recursion while initializing classpath container
Summary: Inefficient recursion while initializing classpath container
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 3.0 M6   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-21 07:24 EST by Jerome Lanneluc CLA
Modified: 2004-03-08 14:11 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jerome Lanneluc CLA 2003-11-21 07:24:26 EST
Build 20031120

As shown in bug 47051, we reenter DeltaProcessingState.initializeRoots() in the 
same thread too many times while initializing classpath containers. The depth 
of the stack is o(n2) the number of projects in the workspace. This could 
easily cause StackOverFlowErrors.
Comment 1 Jerome Lanneluc CLA 2003-11-21 07:27:27 EST
Copy of the stack that Philippe got:
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots
(DeltaProcessingState.java:138)
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:363)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:705)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1554)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1573)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3056)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer
(JavaCore.java:3182)
        at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize
(JREContainerInitializer.java:51)
        at org.eclipse.jdt.core.JavaCore$1.run(JavaCore.java:1148)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer
(JavaCore.java:1143)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1859)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1789)
        at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath
(JavaProject.java:1765)
        at org.eclipse.jdt.internal.core.JavaProject.buildStructure
(JavaProject.java:258)
        at org.eclipse.jdt.internal.core.Openable.generateInfos
(Openable.java:200)
        at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed
(JavaElement.java:487)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:279)
        at org.eclipse.jdt.internal.core.JavaElement.getElementInfo
(JavaElement.java:265)
        at org.eclipse.jdt.internal.core.JavaElement.getChildren
(JavaElement.java:220)
        at org.eclipse.jdt.internal.core.Openable.hasChildren(Openable.java:302)
        at org.eclipse.jdt.ui.StandardJavaElementContentProvider.hasChildren
(StandardJavaElementContentProvider.java:241)
        at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable
(AbstractTreeViewer.java:1152)
        at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus
(AbstractTreeViewer.java:1596)
        at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem
(AbstractTreeViewer.java:384)
        at org.eclipse.jface.viewers.AbstractTreeViewer$1.run
(AbstractTreeViewer.java:363)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84)
        at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren
(AbstractTreeViewer.java:349)
        at org.eclipse.jface.viewers.AbstractTreeViewer$5.run
(AbstractTreeViewer.java:808)
        at org.eclipse.jface.viewers.StructuredViewer.preservingSelection
(StructuredViewer.java:810)
        at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged
(AbstractTreeViewer.java:798)
        at org.eclipse.jface.viewers.ContentViewer.setInput
(ContentViewer.java:238)
        at org.eclipse.jface.viewers.StructuredViewer.setInput
(StructuredViewer.java:1004)
        at 
org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.createPartControl
(PackageExplorerPart.java:308)
        at org.eclipse.ui.internal.PartPane$4.run(PartPane.java:161)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.ui.internal.PartPane.createChildControl
(PartPane.java:157)
        at org.eclipse.ui.internal.ViewPane.createChildControl
(ViewPane.java:211)
        at org.eclipse.ui.internal.ViewFactory$2.run(ViewFactory.java:167)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:1127)
        at org.eclipse.core.runtime.Platform.run(Platform.java:464)
        at org.eclipse.ui.internal.ViewFactory.busyRestoreView
(ViewFactory.java:98)
        at org.eclipse.ui.internal.ViewFactory$1.run(ViewFactory.java:82)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84)
        at org.eclipse.ui.internal.ViewFactory.restoreView(ViewFactory.java:78)
        at org.eclipse.ui.internal.ViewFactory$ViewReference.getPart
(ViewFactory.java:332)
        at org.eclipse.ui.internal.WorkbenchPage$1.propertyChange
(WorkbenchPage.java:123)
        at org.eclipse.ui.internal.LayoutPart.setVisible(LayoutPart.java:236)
        at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:368)
        at org.eclipse.ui.internal.PartTabFolder.setSelection
(PartTabFolder.java:847)
        at org.eclipse.ui.internal.PartTabFolder.setSelection
(PartTabFolder.java:833)
        at org.eclipse.ui.internal.PartTabFolder.createControl
(PartTabFolder.java:239)
        at org.eclipse.ui.internal.PartSashContainer.createControl
(PartSashContainer.java:192)
        at org.eclipse.ui.internal.PerspectivePresentation.activate
(PerspectivePresentation.java:130)
        at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:724)
        at org.eclipse.ui.internal.WorkbenchPage.setPerspective
(WorkbenchPage.java:2471)
        at org.eclipse.ui.internal.WorkbenchPage.busySetPerspective
(WorkbenchPage.java:658)
        at org.eclipse.ui.internal.WorkbenchPage.access$8
(WorkbenchPage.java:643)
        at org.eclipse.ui.internal.WorkbenchPage$12.run(WorkbenchPage.java:2589)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84)
        at org.eclipse.ui.internal.WorkbenchPage.setPerspective
(WorkbenchPage.java:2587)
        at org.eclipse.ui.internal.ChangeToPerspectiveMenu.run
(ChangeToPerspectiveMenu.java:63)
        at org.eclipse.ui.actions.PerspectiveMenu.run(PerspectiveMenu.java:308)
        at org.eclipse.ui.actions.PerspectiveMenu$3.widgetSelected
(PerspectiveMenu.java:120)
        at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:89)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2187)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1877)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1405)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1381)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:237)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139)
        at org.eclipse.ui.internal.ide.IDEApplication.run
(IDEApplication.java:47)
        at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:858)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:299)
        at org.eclipse.core.launcher.Main.run(Main.java:767)
        at org.eclipse.core.launcher.Main.main(Main.java:601)
        at intuitive.audit.Main.runProgramWithClass(Native Method)
        at intuitive.audit.Audit.main(Audit.java:731)
Comment 2 Jerome Lanneluc CLA 2003-11-21 07:55:01 EST
Changed initializeRoots() to not reenter if the same thread is already 
initializing the roots.

Starting the workbench with Resources perspective only, then switching to the 
Java perspective used to take 17s on my machine. It now takes 6s.
Comment 3 Jerome Lanneluc CLA 2003-11-21 12:14:29 EST
Reopening as fix is not good enough: causes a NPE if opening a Java perspective 
without the Package Explorer visible. Will not go in M5.
Comment 4 Jerome Lanneluc CLA 2003-12-10 06:23:28 EST
Added fix back and verified that there was no NPE any longer.
Comment 5 Jerome Lanneluc CLA 2003-12-11 07:16:19 EST
Improved fix so that the 'roots' field of DeltaProcessingState are initialized 
(the NPE can no longer happen).
Comment 6 Frederic Fusier CLA 2003-12-17 07:02:12 EST
Verified for 3.0 M6 with build I200312162000.
Comment 7 John Arthorne CLA 2004-03-08 14:11:57 EST
Jeem is getting stack overflows in I20040304 that look just like this. See bug
53953... possible regression?