Bug 537416 - UI Freeze for 15 minutes everytime when starting Eclipse IDE
Summary: UI Freeze for 15 minutes everytime when starting Eclipse IDE
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.8   Edit
Hardware: PC Windows 10
: P3 critical (vote)
Target Milestone: 4.9 M2   Edit
Assignee: Lucas Bullen CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-07-26 09:52 EDT by Markus S CLA
Modified: 2018-08-02 09:04 EDT (History)
6 users (show)

See Also:


Attachments
org.eclipse.ui.ide_3.14.0.v20180517-1842 (2.29 MB, application/x-java-archive)
2018-07-27 15:07 EDT, Lucas Bullen CLA
no flags Details
Thread Dump after 10 minutes (43.57 KB, text/plain)
2018-07-27 15:40 EDT, Markus S CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Markus S CLA 2018-07-26 09:52:13 EDT
Every time I close and restart Eclipse it will hang for at least 15 minutes and this is what you can see in the main thread:


2018-07-26 09:44:52

"main" - Thread t@1
   java.lang.Thread.State: TIMED_WAITING
	at java.lang.Object.wait(Native Method)
	- waiting on <51a1443a> (a org.eclipse.core.internal.jobs.Semaphore)
	at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39)
	at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java:170)
	at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:106)
	at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:82)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:122)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2237)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2284)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:804)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3130)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3619)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3118)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3282)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2359)
	at org.eclipse.jdt.internal.core.DynamicProjectReferences.getDependentProjects(DynamicProjectReferences.java:34)
	at org.eclipse.core.internal.resources.ProjectDescription.computeDynamicReferencesForProject(ProjectDescription.java:949)
	at org.eclipse.core.internal.resources.ProjectDescription.getAllBuildConfigReferences(ProjectDescription.java:265)
	at org.eclipse.core.internal.resources.ProjectDescription.getAllReferences(ProjectDescription.java:221)
	at org.eclipse.core.internal.resources.Project.getReferencedProjects(Project.java:470)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.buildConnectedComponents(CloseUnrelatedProjectsAction.java:79)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.computeRelated(CloseUnrelatedProjectsAction.java:199)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.getSelectedResources(CloseUnrelatedProjectsAction.java:216)
	at org.eclipse.ui.actions.SelectionListenerAction.selectionIsOfType(SelectionListenerAction.java:240)
	at org.eclipse.ui.actions.CloseResourceAction.updateSelection(CloseResourceAction.java:222)
	at org.eclipse.ui.actions.BaseSelectionListenerAction.selectionChanged(BaseSelectionListenerAction.java:124)
	at org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider.updateActionBars(ResourceMgmtActionProvider.java:286)
	at org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider.fillActionBars(ResourceMgmtActionProvider.java:89)
	at org.eclipse.ui.navigator.NavigatorActionService$3.run(NavigatorActionService.java:265)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.navigator.NavigatorActionService.fillActionBars(NavigatorActionService.java:258)
	at org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob$1.run(CommonNavigatorManager.java:84)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob.runInUIThread(CommonNavigatorManager.java:78)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
	at org.eclipse.ui.progress.UIJob$$Lambda$437/1763214663.run(Unknown Source)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
	- locked <165e1884> (a org.eclipse.swt.widgets.RunnableLock)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3906)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3537)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1170)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1059)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:667)
	at org.eclipse.ui.internal.Workbench$$Lambda$90/571696027.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:597)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:564)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:656)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1498)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1471)


I also notice a full workspace build every time, why is this happening and how can it be fixed?
Comment 1 Markus S CLA 2018-07-26 09:52:55 EDT
Eclipse IDE for RCP and RAP Developers
Version: Photon Release (4.8.0)
Build id: 20180619-1200
OS: Windows 10, v.10.0, x86_64 / win32
Java version: 9.0.4
Comment 2 Dani Megert CLA 2018-07-26 09:55:25 EDT
Can you attach some more stack traces to see the pattern?

Could be bug 536990.
Comment 3 Markus S CLA 2018-07-26 10:16:05 EDT
2018-07-26 10:10:13

"main" - Thread t@1
   java.lang.Thread.State: TIMED_WAITING
	at java.lang.Object.wait(Native Method)
	- waiting on <244d0aa1> (a java.lang.Object)
	at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:315)
	at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:202)
	at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:92)
	at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:308)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:121)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2237)
	at org.eclipse.core.internal.resources.Project.touch(Project.java:1316)
	at org.eclipse.jdt.internal.core.SetContainerOperation.executeOperation(SetContainerOperation.java:117)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:733)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:804)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3130)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3619)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3118)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3282)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2359)
	at org.eclipse.jdt.internal.core.DynamicProjectReferences.getDependentProjects(DynamicProjectReferences.java:34)
	at org.eclipse.core.internal.resources.ProjectDescription.computeDynamicReferencesForProject(ProjectDescription.java:949)
	at org.eclipse.core.internal.resources.ProjectDescription.getAllBuildConfigReferences(ProjectDescription.java:265)
	at org.eclipse.core.internal.resources.ProjectDescription.getAllReferences(ProjectDescription.java:221)
	at org.eclipse.core.internal.resources.Project.getReferencedProjects(Project.java:470)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.buildConnectedComponents(CloseUnrelatedProjectsAction.java:79)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.computeRelated(CloseUnrelatedProjectsAction.java:199)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.getSelectedResources(CloseUnrelatedProjectsAction.java:216)
	at org.eclipse.ui.actions.SelectionListenerAction.selectionIsOfType(SelectionListenerAction.java:240)
	at org.eclipse.ui.actions.CloseResourceAction.updateSelection(CloseResourceAction.java:222)
	at org.eclipse.ui.actions.BaseSelectionListenerAction.selectionChanged(BaseSelectionListenerAction.java:124)
	at org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider.updateActionBars(ResourceMgmtActionProvider.java:286)
	at org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider.fillActionBars(ResourceMgmtActionProvider.java:89)
	at org.eclipse.ui.navigator.NavigatorActionService$3.run(NavigatorActionService.java:265)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.navigator.NavigatorActionService.fillActionBars(NavigatorActionService.java:258)
	at org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob$1.run(CommonNavigatorManager.java:84)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob.runInUIThread(CommonNavigatorManager.java:78)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
	at org.eclipse.ui.progress.UIJob$$Lambda$484/2012028231.run(Unknown Source)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
	- locked <76eab621> (a org.eclipse.swt.widgets.RunnableLock)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3906)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3537)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1170)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1059)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:667)
	at org.eclipse.ui.internal.Workbench$$Lambda$153/1319203143.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:597)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:564)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:656)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1498)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1471)

   Locked ownable synchronizers:
	- None


2018-07-26 10:10:49

"Worker-1: Initializing Java Tooling" - Thread t@39
   java.lang.Thread.State: RUNNABLE
	at java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
	at java.io.File.isFile(File.java:883)
	at org.eclipse.pde.internal.core.ExternalLibraryCache.getExtractedLibraries(ExternalModelManager.java:110)
	at org.eclipse.pde.internal.core.ExternalModelManager.getExtractedLibraries(ExternalModelManager.java:49)
	at org.eclipse.pde.internal.core.PDEClasspathContainer.addExternalPlugin(PDEClasspathContainer.java:78)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addPlugin(RequiredPluginsClasspathContainer.java:301)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addDependency(RequiredPluginsClasspathContainer.java:248)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addDependency(RequiredPluginsClasspathContainer.java:260)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addDependency(RequiredPluginsClasspathContainer.java:260)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addDependency(RequiredPluginsClasspathContainer.java:260)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addDependency(RequiredPluginsClasspathContainer.java:232)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.computePluginEntries(RequiredPluginsClasspathContainer.java:126)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.getClasspathEntries(RequiredPluginsClasspathContainer.java:77)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2186)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2127)
	at org.eclipse.jdt.internal.core.ClasspathValidation.validate(ClasspathValidation.java:72)
	at org.eclipse.jdt.internal.core.ChangeClasspathOperation.classpathChanged(ChangeClasspathOperation.java:52)
	at org.eclipse.jdt.internal.core.SetContainerOperation.executeOperation(SetContainerOperation.java:112)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:733)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:804)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3130)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.initializeAfterLoad(JavaCore.java:4381)
	at org.eclipse.jdt.internal.ui.InitializeAfterLoadJob$RealJob.run(InitializeAfterLoadJob.java:36)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

   Locked ownable synchronizers:
	- None



2018-07-26 10:12:07

"Worker-3: Update dynamic Java sources working sets" - Thread t@41
   java.lang.Thread.State: RUNNABLE
	at java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
	at java.io.File.exists(File.java:820)
	at org.eclipse.pde.internal.core.SourceLocationManager.searchExtensionLocations(SourceLocationManager.java:284)
	at org.eclipse.pde.internal.core.SourceLocationManager.findSourcePath(SourceLocationManager.java:59)
	at org.eclipse.pde.internal.core.ClasspathUtilCore.getSourceAnnotation(ClasspathUtilCore.java:154)
	at org.eclipse.pde.internal.core.PDEClasspathContainer.addExternalPlugin(PDEClasspathContainer.java:72)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addPlugin(RequiredPluginsClasspathContainer.java:301)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addDependency(RequiredPluginsClasspathContainer.java:248)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addDependency(RequiredPluginsClasspathContainer.java:260)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addDependency(RequiredPluginsClasspathContainer.java:232)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.addHostPlugin(RequiredPluginsClasspathContainer.java:337)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.computePluginEntries(RequiredPluginsClasspathContainer.java:113)
	at org.eclipse.pde.internal.core.RequiredPluginsClasspathContainer.getClasspathEntries(RequiredPluginsClasspathContainer.java:77)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2186)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2127)
	at org.eclipse.jdt.internal.core.ClasspathValidation.validate(ClasspathValidation.java:72)
	at org.eclipse.jdt.internal.core.ChangeClasspathOperation.classpathChanged(ChangeClasspathOperation.java:52)
	at org.eclipse.jdt.internal.core.SetContainerOperation.executeOperation(SetContainerOperation.java:112)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:733)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:804)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3130)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3619)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3118)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3282)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2359)
	at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:475)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:265)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:593)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:323)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:309)
	at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:264)
	at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots(JavaProject.java:2235)
	at org.eclipse.jdt.internal.ui.workingsets.DynamicSourcesWorkingSetUpdater.updateElements(DynamicSourcesWorkingSetUpdater.java:194)
	at org.eclipse.jdt.internal.ui.workingsets.DynamicSourcesWorkingSetUpdater.updateElements(DynamicSourcesWorkingSetUpdater.java:175)
	at org.eclipse.jdt.internal.ui.workingsets.DynamicSourcesWorkingSetUpdater$1.run(DynamicSourcesWorkingSetUpdater.java:162)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

   Locked ownable synchronizers:
	- None

"Worker-6: Decoration Calculation" - Thread t@44
   java.lang.Thread.State: RUNNABLE
	at sun.nio.fs.WindowsNativeDispatcher.GetFileAttributesEx0(Native Method)
	at sun.nio.fs.WindowsNativeDispatcher.GetFileAttributesEx(WindowsNativeDispatcher.java:380)
	at sun.nio.fs.WindowsFileAttributes.get(WindowsFileAttributes.java:308)
	at sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:51)
	at sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:38)
	at sun.nio.fs.WindowsFileSystemProvider.readAttributes(WindowsFileSystemProvider.java:194)
	at java.nio.file.Files.readAttributes(Files.java:1755)
	at java.util.zip.ZipFile$Source.get(ZipFile.java:951)
	at java.util.zip.ZipFile.<init>(ZipFile.java:216)
	at java.util.zip.ZipFile.<init>(ZipFile.java:148)
	at java.util.zip.ZipFile.<init>(ZipFile.java:162)
	at org.eclipse.jdt.internal.core.JavaModelManager.getZipFile(JavaModelManager.java:2938)
	at org.eclipse.jdt.internal.core.JavaModelManager.getZipFile(JavaModelManager.java:2907)
	at org.eclipse.jdt.internal.core.JavaModelManager.verifyArchiveContent(JavaModelManager.java:2888)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateLibraryContents(ClasspathEntry.java:2467)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateLibraryEntry(ClasspathEntry.java:2429)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2256)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2197)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2127)
	at org.eclipse.jdt.internal.core.ClasspathValidation.validate(ClasspathValidation.java:72)
	at org.eclipse.jdt.internal.core.ChangeClasspathOperation.classpathChanged(ChangeClasspathOperation.java:52)
	at org.eclipse.jdt.internal.core.SetContainerOperation.executeOperation(SetContainerOperation.java:112)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:733)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:804)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3130)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3619)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3118)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3282)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2359)
	at org.eclipse.jdt.internal.core.JavaProject.isOnClasspath(JavaProject.java:2646)
	at org.eclipse.jdt.internal.ui.BuildpathIndicatorLabelDecorator.getOverlay(BuildpathIndicatorLabelDecorator.java:45)
	at org.eclipse.jdt.internal.ui.BuildpathIndicatorLabelDecorator.decorate(BuildpathIndicatorLabelDecorator.java:32)
	at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:258)
	at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:104)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:377)
	at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:359)
	at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:347)
	at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:310)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

   Locked ownable synchronizers:
	- None



2018-07-26 10:14:10

"main" - Thread t@1
   java.lang.Thread.State: RUNNABLE
	at java.io.RandomAccessFile.close0(Native Method)
	at java.io.RandomAccessFile.access$000(RandomAccessFile.java:62)
	at java.io.RandomAccessFile$1.close(RandomAccessFile.java:651)
	at java.io.FileDescriptor.closeAll(FileDescriptor.java:231)
	- locked <3ed288b4> (a java.io.FileDescriptor)
	at java.io.RandomAccessFile.close(RandomAccessFile.java:649)
	at java.util.zip.ZipFile$Source.close(ZipFile.java:1010)
	at java.util.zip.ZipFile$Source.close(ZipFile.java:978)
	- locked <6af96983> (a java.util.HashMap)
	at java.util.zip.ZipFile$Source.access$1000(ZipFile.java:871)
	at java.util.zip.ZipFile.close(ZipFile.java:629)
	- locked <1200772f> (a java.util.zip.ZipFile)
	at org.eclipse.jdt.internal.core.JavaModelManager.closeZipFile(JavaModelManager.java:1863)
	at org.eclipse.jdt.internal.core.JavaModelManager.verifyArchiveContent(JavaModelManager.java:2889)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateLibraryContents(ClasspathEntry.java:2467)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateLibraryEntry(ClasspathEntry.java:2429)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2256)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2197)
	at org.eclipse.jdt.internal.core.ClasspathEntry.validateClasspathEntry(ClasspathEntry.java:2127)
	at org.eclipse.jdt.internal.core.ClasspathValidation.validate(ClasspathValidation.java:72)
	at org.eclipse.jdt.internal.core.ChangeClasspathOperation.classpathChanged(ChangeClasspathOperation.java:52)
	at org.eclipse.jdt.internal.core.SetContainerOperation.executeOperation(SetContainerOperation.java:112)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:733)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:804)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3130)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3619)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3118)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3282)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2359)
	at org.eclipse.jdt.internal.core.DynamicProjectReferences.getDependentProjects(DynamicProjectReferences.java:34)
	at org.eclipse.core.internal.resources.ProjectDescription.computeDynamicReferencesForProject(ProjectDescription.java:949)
	at org.eclipse.core.internal.resources.ProjectDescription.getAllBuildConfigReferences(ProjectDescription.java:265)
	at org.eclipse.core.internal.resources.ProjectDescription.getAllReferences(ProjectDescription.java:221)
	at org.eclipse.core.internal.resources.Project.getReferencedProjects(Project.java:470)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.buildConnectedComponents(CloseUnrelatedProjectsAction.java:79)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.computeRelated(CloseUnrelatedProjectsAction.java:199)
	at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.getSelectedResources(CloseUnrelatedProjectsAction.java:216)
	at org.eclipse.ui.actions.SelectionListenerAction.selectionIsOfType(SelectionListenerAction.java:240)
	at org.eclipse.ui.actions.CloseResourceAction.updateSelection(CloseResourceAction.java:222)
	at org.eclipse.ui.actions.BaseSelectionListenerAction.selectionChanged(BaseSelectionListenerAction.java:124)
	at org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider.updateActionBars(ResourceMgmtActionProvider.java:286)
	at org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider.fillActionBars(ResourceMgmtActionProvider.java:89)
	at org.eclipse.ui.navigator.NavigatorActionService$3.run(NavigatorActionService.java:265)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.navigator.NavigatorActionService.fillActionBars(NavigatorActionService.java:258)
	at org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob$1.run(CommonNavigatorManager.java:84)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob.runInUIThread(CommonNavigatorManager.java:78)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
	at org.eclipse.ui.progress.UIJob$$Lambda$484/2012028231.run(Unknown Source)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
	- locked <76eab621> (a org.eclipse.swt.widgets.RunnableLock)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3906)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3537)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1170)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1059)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:667)
	at org.eclipse.ui.internal.Workbench$$Lambda$153/1319203143.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:597)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:564)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:656)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1498)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1471)

   Locked ownable synchronizers:
	- None
Comment 4 Dani Megert CLA 2018-07-26 10:38:35 EDT
Can you check whether it works using 4.7.3a?

The fix for bug 522096 might be the culprit here.
Comment 5 Markus S CLA 2018-07-26 15:19:37 EDT
Just found out that the issue does not occur in case I close the "Project Explorer" view before closing Eclipse!
It also does not trigger a full workspace build after restart in that case.


Regarding 4.7.3a, it would take quite some time to setup a new workspace with my projects so I hope the information I just gave you is enough to solve the problem.
Comment 6 Andrey Loskutov CLA 2018-07-26 15:23:49 EDT
Just curious : how many projects/working sets do you have?
Comment 7 Markus S CLA 2018-07-26 15:25:32 EDT
1100 projects, no working sets.
Comment 8 Eclipse Genie CLA 2018-07-27 14:44:07 EDT
New Gerrit change created: https://git.eclipse.org/r/126719
Comment 9 Lucas Bullen CLA 2018-07-27 15:07:38 EDT
Created attachment 275167 [details]
org.eclipse.ui.ide_3.14.0.v20180517-1842

@Markus to test/fix this issue without changing your eclipse edition, here is a replacement jar with the fix. Don't know if this will work across linux to windows though?
Comment 10 Markus S CLA 2018-07-27 15:40:57 EDT
Created attachment 275168 [details]
Thread Dump after 10 minutes

I applied your plugin and it works as expected. The UI now does not freeze anymore after starting the IDE even with the Project Explorer view - thank you so much for this quick fix!

However, the "Initialize Java Tooling" job is now running for the exact same time like the UI was freezing before, so I still have to wait for this job to complete before I can start using the IDE.

Based on the thread dump it has to wait for the "Updating workspace" job to be completed, where it seems like it refreshing the whole workspace after startup (which is not what I want anyway).
Comment 11 Andrey Loskutov CLA 2018-07-27 16:06:46 EDT
(In reply to Markus Mising name from comment #10)
> Created attachment 275168 [details]
> Thread Dump after 10 minutes
> 
> I applied your plugin and it works as expected. The UI now does not freeze
> anymore after starting the IDE even with the Project Explorer view - thank
> you so much for this quick fix!
> 
> However, the "Initialize Java Tooling" job is now running for the exact same
> time like the UI was freezing before, so I still have to wait for this job
> to complete before I can start using the IDE.
> 
> Based on the thread dump it has to wait for the "Updating workspace" job to
> be completed, where it seems like it refreshing the whole workspace after
> startup (which is not what I want anyway).

Stack trace reminds me on bug 536918. Do you use maven tooling? Any errors in the log on startup? 

Please note, we recently fixed a bug where workspace build was always triggered on startup, may be is this related? Anyway, we will merge the patch from Lucas today, so with some luck next nightly 4.9 build would contain both fixes.
Comment 13 Andrey Loskutov CLA 2018-07-27 16:30:53 EDT
What is interesting in the attachment 275168 [details] : the stack contains 3 threads running same operation (JavaModelManager.initializeAllContainers()):

"Worker-14: Updating workspace" #47 prio=5 os_prio=0 tid=0x000001efe10e1800 nid=0x1a54 runnable [0x00000056d15bd000]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.core.runtime.Path.<init>(Path.java:238)
	at org.eclipse.core.runtime.Path.<init>(Path.java:186)
	at org.eclipse.core.runtime.Path.fromOSString(Path.java:92)
	at org.eclipse.jdt.internal.core.JavaModel.isFile(JavaModel.java:380)
	at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoot0(JavaProject.java:2215)
	at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoot(JavaProject.java:2201)
	at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.getPackageFragmentRoot(DeltaProcessor.java:137)
	at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.<init>(DeltaProcessor.java:129)
	at org.eclipse.jdt.internal.core.DeltaProcessingState.getRootInfos(DeltaProcessingState.java:340)
	at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots(DeltaProcessingState.java:256)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:730)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:799)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3128)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3619)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3118)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3282)
	at org.eclipse.jdt.internal.core.ClasspathChange.generateDelta(ClasspathChange.java:240)
	at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2107)
	at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:474)
	at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:297)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:287)
	at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:150)
	at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:376)
	at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1499)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2302)
	at org.eclipse.core.internal.events.NotificationManager$NotifyJob.run(NotificationManager.java:41)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

"Worker-11: Initializing Java Tooling" #44 prio=5 os_prio=0 tid=0x000001efe10de800 nid=0x1bec in Object.wait() [0x00000056d12be000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@9.0.4/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39)
	- waiting to re-lock in wait() <0x0000000090257be8> (a org.eclipse.core.internal.jobs.Semaphore)
	at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java:170)
	at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:106)
	at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:82)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:122)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2237)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2284)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:804)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3130)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.initializeAfterLoad(JavaCore.java:4381)
	at org.eclipse.jdt.internal.ui.InitializeAfterLoadJob$RealJob.run(InitializeAfterLoadJob.java:36)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

"Worker-1: Update dynamic Java sources working sets" #34 prio=5 os_prio=0 tid=0x000001efdc43d800 nid=0x5ff0 in Object.wait() [0x00000056d08bd000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@9.0.4/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39)
	- waiting to re-lock in wait() <0x000000008aaac0e8> (a org.eclipse.core.internal.jobs.Semaphore)
	at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java:170)
	at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:106)
	at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:82)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:122)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2237)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2284)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:804)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.initKnownContainers(JavaModelManager.java:3121)
	at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3091)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
	at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3130)
	at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2115)
	at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3619)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3118)
	at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3282)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2359)
	at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:475)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:265)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:593)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:323)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:309)
	at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:264)
	at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots(JavaProject.java:2235)
	at org.eclipse.jdt.internal.ui.workingsets.DynamicSourcesWorkingSetUpdater.updateElements(DynamicSourcesWorkingSetUpdater.java:194)
	at org.eclipse.jdt.internal.ui.workingsets.DynamicSourcesWorkingSetUpdater.updateElements(DynamicSourcesWorkingSetUpdater.java:175)
	at org.eclipse.jdt.internal.ui.workingsets.DynamicSourcesWorkingSetUpdater$1.run(DynamicSourcesWorkingSetUpdater.java:162)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

   Locked ownable synchronizers:
	- None

If this is by design, I wonder if it is a good design to init all containers *3 times in parallel*?
Comment 14 Andrey Loskutov CLA 2018-07-27 17:27:26 EDT
Probably this *is* related to the bug 536990: two threads are running  SetContainerOperation and the third one is triggered on DeltaProcessor.resourceChanged, coming probably from the same SetContainerOperation. 

Those classpath changes triggered by SetContainerOperation were caused by a problem in access rules storage, see bug 536990 comment 23. In 4.8 we triggered build on almost *every* project on startup.

Markus: if I'm right, you should not see the problem anymore with the latest 4.9 nightly, for example http://download.eclipse.org/eclipse/downloads/drops4/I20180726-2000/ (which does *not* have a fix from Lucas yet, but for bug 536990).

Can you try it?
Comment 15 Andrey Loskutov CLA 2018-07-31 16:40:27 EDT
@Markus, ping?
Comment 16 Markus S CLA 2018-07-31 16:53:50 EDT
Unfortunately I did not have the time to setup a 4.9 workspace, I will try to test this this week.
Comment 17 Andrey Loskutov CLA 2018-07-31 16:56:26 EDT
(In reply to Markus Mising name from comment #16)
> Unfortunately I did not have the time to setup a 4.9 workspace, I will try
> to test this this week.

Would be great, thanks. You can use http://download.eclipse.org/eclipse/downloads/drops4/I20180731-1305/
Comment 18 Markus S CLA 2018-08-02 09:00:55 EDT
I tried the version you provided and everything seems to be working fine, as before with 4.6: the IDE is ready after 1 minute.

It does run a "quick" full workspace build however judging by the progress monitor description this is only reading the delta state on each project and does not do anything else, so this should be fine.

Thank you again!!
Comment 19 Andrey Loskutov CLA 2018-08-02 09:04:34 EDT
Thanks Markus, let close this one as fixed.

Please if you see the problem again, create a new bug for that.