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

Bug 458706

Summary: Startup hangs in JavaCore.java:3095 without holding a monitor
Product: [Eclipse Project] JDT Reporter: Stefan Cordes <rsc>
Component: CoreAssignee: JDT-Core-Inbox <jdt-core-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: jarthana, stephan.herrmann
Version: 4.4.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard: stalebug
Attachments:
Description Flags
Thread Dump from VisualVM
none
Visual VM Thread dump a few minutes later.
none
VM hangs on startup 2015-02-06
none
.log file from metadata
none
.project Out of .metadata\.plugins\org.eclipse.jdt.core\.org.eclipse.jdt.core.external.folders none

Description Stefan Cordes CLA 2015-01-29 02:39:23 EST
Created attachment 250333 [details]
Thread Dump from VisualVM

I am starting my Eclipse (Build id: 20140925-1800) via

start "Eclipse" /NORMAL eclipse.exe -data c:\java\_Head -clean -showlocation    -vmargs -Xmx1800m

and getting sometime a hung during splash screen (for "ever").

Thread dump shows

"Worker-0" #20 prio=5 os_prio=0 tid=0x000000005c2db000 nid=0x1f40 in Object.wait() [0x000000005f2fe000]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.jdt.core.JavaCore.create(JavaCore.java:3095)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.initializeBuilder(JavaBuilder.java:584)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:169)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

   Locked ownable synchronizers:
	- None

but sampler shows "no CPU usage".

Invoker which is waiting:
"main" #1 prio=6 os_prio=0 tid=0x000000000211a000 nid=0x1e98 in Object.wait() [0x0000000002404000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:272)
	- locked <0x000000009e1ac000> (a java.lang.Object)
	at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:197)
	at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:92)
	at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:290)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:118)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2251)
	at org.eclipse.core.internal.resources.Project.open(Project.java:1086)
	at org.eclipse.core.internal.resources.Project.open(Project.java:1178)
	at org.eclipse.jdt.internal.core.ExternalFoldersManager.openExternalFoldersProject(ExternalFoldersManager.java:309)
	at org.eclipse.jdt.internal.core.ExternalFoldersManager.getFolders(ExternalFoldersManager.java:333)
	at org.eclipse.jdt.internal.core.ExternalFoldersManager.<init>(ExternalFoldersManager.java:62)
	at org.eclipse.jdt.internal.core.ExternalFoldersManager.getExternalFoldersManager(ExternalFoldersManager.java:68)
	- locked <0x00000000f3ca65e0> (a java.lang.Class for org.eclipse.jdt.internal.core.ExternalFoldersManager)
	at org.eclipse.jdt.internal.core.JavaModelManager.<init>(JavaModelManager.java:489)
	at org.eclipse.jdt.internal.core.JavaModelManager.<clinit>(JavaModelManager.java:1084)
	at org.eclipse.jdt.core.JavaCore.start(JavaCore.java:5651)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
	at org.eclipse.osgi.container.Module.doStart(Module.java:571)
	at org.eclipse.osgi.container.Module.start(Module.java:439)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454)
	at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
	at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:391)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.eclipse.jdt.internal.launching.LaunchingPlugin.start(LaunchingPlugin.java:546)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
	at org.eclipse.osgi.container.Module.doStart(Module.java:571)
	at org.eclipse.osgi.container.Module.start(Module.java:439)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454)
	at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
	at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:391)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.eclipse.pde.internal.core.PDECore.<clinit>(PDECore.java:40)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
	at java.lang.Class.newInstance(Class.java:433)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:755)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:706)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
	at org.eclipse.osgi.container.Module.doStart(Module.java:571)
	at org.eclipse.osgi.container.Module.start(Module.java:439)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454)
	at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
	at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:391)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.eclipse.pde.internal.ui.PDEPlugin.getPreferenceManager(PDEPlugin.java:66)
	at org.eclipse.pde.internal.ui.shared.target.TargetStatus.initializeTargetStatus(TargetStatus.java:188)
	at org.eclipse.pde.internal.ui.PDEPlugin.start(PDEPlugin.java:200)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:771)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:764)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:721)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:936)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:319)
	at org.eclipse.osgi.container.Module.doStart(Module.java:571)
	at org.eclipse.osgi.container.Module.start(Module.java:439)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454)
	at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:395)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:568)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
	at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
	at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
	at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
	at org.eclipse.ui.internal.services.WorkbenchServiceRegistry.getSourceProviders(WorkbenchServiceRegistry.java:177)
	at org.eclipse.ui.internal.services.SourceProviderService.readRegistry(SourceProviderService.java:108)
	at org.eclipse.ui.internal.Workbench$47.runWithException(Workbench.java:2404)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136)
	- locked <0x00000000f41bb758> (a org.eclipse.swt.widgets.RunnableLock)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2897)
	at org.eclipse.ui.internal.Workbench.access$8(Workbench.java:2797)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:633)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
	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:380)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

   Locked ownable synchronizers:
	- <0x00000000901270a8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	- <0x00000000901d2838> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	- <0x0000000090266a98> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	- <0x0000000090581fc0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

Killing via process explorer and again starting eclipse (with the same command) works.
Comment 1 Stefan Cordes CLA 2015-01-29 02:40:15 EST
Created attachment 250334 [details]
Visual VM Thread dump a few minutes later.
Comment 2 Stefan Cordes CLA 2015-01-29 02:43:22 EST
My used JDK to run Eclipse is

java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
Comment 3 Stephan Herrmann CLA 2015-01-29 10:20:08 EST
Not an easy win...

Class JavaModelManager is being initialized (<clinit>), during which we somehow call back (on a different thread) trying to access this class.

It looks unfortunate, how much work is being done during implicit on-demand initialization. But if JavaModelManager.<clinit> indirectly triggers a Java build this looks like asking for trouble to me, because sooner or later the build will try to access the class JavaModelManager which is not yet fully initialized.

I must say, I don't know what the "normal" initialization sequence in this area looks like, i.e., what is special about this hung scenario? Is the JVM supposed to allow access to the half-initialized class?
Comment 4 Jay Arthanareeswaran CLA 2015-01-29 10:40:25 EST
(In reply to Stephan Herrmann from comment #3)
> It looks unfortunate, how much work is being done during implicit on-demand
> initialization. But if JavaModelManager.<clinit> indirectly triggers a Java
> build this looks like asking for trouble to me, because sooner or later the
> build will try to access the class JavaModelManager which is not yet fully
> initialized.

Looking at the stack of ExternalFoldersManager, looks like the workspace was moved or something similar (?).
Comment 5 Stefan Cordes CLA 2015-01-30 11:05:40 EST
In my workspace I had a .project with
	<linkedResources>
		<link>
			<name>org.eclipse.equinox.security</name>
			<type>2</type>
			<location>C:/Users/xxxxx/.eclipse/org.eclipse.equinox.security</location>
		</link>
	</linkedResources>
</projectDescription>


Removed it hoping this workarounds the problem.
Comment 6 Stefan Cordes CLA 2015-02-06 02:33:17 EST
Created attachment 250563 [details]
VM hangs on startup 2015-02-06

Removing resourcelink did not help.

I deleted the complete ".metadata" folder and started with a fresh workspace,
imported projects again and when starting eclipse the startup hangs again.

See Startup-Thread-Dump-2015-02-06.txt

(I'm using m2e and so have several duplicate resources due to sub-folders of parent project and the module projects itself)
Comment 7 Stefan Cordes CLA 2015-02-06 02:55:18 EST
Created attachment 250564 [details]
.log file from metadata

Attached
metadata-.log-file.txt

It shows

org.eclipse.core.internal.resources.ResourceException: The project description file (.project) for '.org.eclipse.jdt.core.external.folders' is missing.  This file contains important 
information about the project.  The project will not function properly until this file is restored.

and

!ENTRY org.eclipse.osgi 2 0 2015-02-05 18:13:20.279
!MESSAGE While loading class "org.eclipse.jdt.internal.core.builder.JavaBuilder", thread "Thread[Worker-0,5,main]" timed out waiting (5023ms) for thread "Thread[main,6,main]" to finish 
starting bundle "org.eclipse.jdt.core_3.10.0.v20140902-0626 [397]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but 
"org.eclipse.jdt.internal.core.builder.JavaBuilder" may not be fully initialized.
!STACK 0
org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; osgi.identity="org.eclipse.jdt.core"; type="osgi.bundle"; 
version:Version="3.10.0.v20140902-0626"; singleton:="true" [id=397] STARTED [STARTED]

and

java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String



All my imported projects have an .project file.
I had 3 folders in the workspace root folder which did not have a .project file but they was not imported as a project. (deleted them now).
Comment 8 Jay Arthanareeswaran CLA 2015-02-06 02:59:20 EST
I think we should move the initialization of ExternalFoldersManager into a new thread, either the JavaModelManager#externalFoldersManager field or just the getFolders() call in ExternalFoldersManager.

But looks like we do few other things to during the initialization of JMM :(
Comment 9 Stefan Cordes CLA 2015-04-16 03:03:12 EDT
As it still happens daily with 
Version: Luna Service Release 2 (4.4.2)
Build id: 20150219-0600
I started the eclipse with remote debugging. Here the parameters and local variables:

Thread [main] (Suspended)	
	owns: Class<T> (org.eclipse.jdt.internal.core.ExternalFoldersManager) (id=46)	
	owns: RunnableLock  (id=94)	
	waiting for: Object  (id=93)	
	Object.wait(long) line: not available [native method]	
	ThreadJob.waitForRun(ThreadJob, IProgressMonitor, InternalJob, Thread) line: 272	
	ThreadJob.joinRun(ThreadJob, IProgressMonitor) line: 197	
	ImplicitJobs.begin(ISchedulingRule, IProgressMonitor, boolean) line: 92	
	JobManager.beginRule(ISchedulingRule, IProgressMonitor) line: 290	
	WorkManager.checkIn(ISchedulingRule, IProgressMonitor) line: 118	
	Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 2251	
	Project.create(IProjectDescription, int, IProgressMonitor) line: 282	
	ExternalFoldersManager.createExternalFoldersProject(IProject, IProgressMonitor) line: 318	
=> IProject.path = ".org.eclipse.jdt.core.external.folders"
=> IProgressMonitor = null
=> desc.location.path = "/C:/java/_head/.metadata/.plugins/org.eclipse.jdt.core/.org.eclipse.jdt.core.external.folders"
	ExternalFoldersManager.openExternalFoldersProject(IProject, IProgressMonitor) line: 279	
=> IProject.path = ".org.eclipse.jdt.core.external.folders"
=> IProgressMonitor = null
=> e1 ResourceException: "The project description file (.project) for '.org.eclipse.jdt.core.external.folders' is missing.  This file contains important information about the project. 

 The project will not function properly until this file is restored."
=> suppressedExceptions = Empty ArrayList
	ExternalFoldersManager.getFolders() line: 333	
	ExternalFoldersManager.<init>() line: 62	
	ExternalFoldersManager.getExternalFoldersManager() line: 68	
	JavaModelManager.<init>() line: 489	
	JavaModelManager.<clinit>() line: 1084	
	JavaCore.start(BundleContext) line: 5651	
	BundleContextImpl$3.run() line: 771	
	BundleContextImpl$3.run() line: 1	
	AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]	
	BundleContextImpl.startActivator(BundleActivator) line: 764	
	BundleContextImpl.start() line: 721	
	EquinoxBundle.startWorker0() line: 936	
	EquinoxBundle$EquinoxModule.startWorker() line: 319	
	EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line: 571	
	EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 439	
	SecureAction.start(Module, Module$StartOptions...) line: 454	
	EclipseLazyStarter.postFindLocalClass(String, Class<?>, ClasspathManager) line: 107	
	ClasspathManager.findLocalClass(String) line: 531	
	EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 324	
	BundleLoader.findLocalClass(String) line: 320	
	SingleSourcePackage.loadClass(String) line: 36	
	BundleLoader.findClassInternal(String, boolean) line: 391	
	BundleLoader.findClass(String, boolean) line: 345	
	BundleLoader.findClass(String) line: 337	
	EquinoxClassLoader(ModuleClassLoader).loadClass(String, boolean) line: 160	
	EquinoxClassLoader(ClassLoader).loadClass(String) line: 357	
	LaunchingPlugin.start(BundleContext) line: 546	
	BundleContextImpl$3.run() line: 771	
	BundleContextImpl$3.run() line: 1	
	AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]	
	BundleContextImpl.startActivator(BundleActivator) line: 764	
	BundleContextImpl.start() line: 721	
	EquinoxBundle.startWorker0() line: 936	
	EquinoxBundle$EquinoxModule.startWorker() line: 319	
	EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line: 571	
	EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 439	
	SecureAction.start(Module, Module$StartOptions...) line: 454	
	EclipseLazyStarter.postFindLocalClass(String, Class<?>, ClasspathManager) line: 107	
	ClasspathManager.findLocalClass(String) line: 531	
	EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 324	
	BundleLoader.findLocalClass(String) line: 320	
	SingleSourcePackage.loadClass(String) line: 36	
	BundleLoader.findClassInternal(String, boolean) line: 391	
	BundleLoader.findClass(String, boolean) line: 345	
	BundleLoader.findClass(String) line: 337	
	EquinoxClassLoader(ModuleClassLoader).loadClass(String, boolean) line: 160	
	EquinoxClassLoader(ClassLoader).loadClass(String) line: 357	
	PDECore.<clinit>() line: 40	
	NativeConstructorAccessorImpl.newInstance0(Constructor<?>, Object[]) line: not available [native method]	
	NativeConstructorAccessorImpl.newInstance(Object[]) line: 62	
	DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45	
	Constructor<T>.newInstance(Object...) line: 422	
	Class<T>.newInstance() line: 442	
	BundleContextImpl.loadBundleActivator() line: 755	
	BundleContextImpl.start() line: 706	
	EquinoxBundle.startWorker0() line: 936	
	EquinoxBundle$EquinoxModule.startWorker() line: 319	
	EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line: 571	
	EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 439	
	SecureAction.start(Module, Module$StartOptions...) line: 454	
	EclipseLazyStarter.postFindLocalClass(String, Class<?>, ClasspathManager) line: 107	
	ClasspathManager.findLocalClass(String) line: 531	
	EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 324	
	BundleLoader.findLocalClass(String) line: 320	
	SingleSourcePackage.loadClass(String) line: 36	
	BundleLoader.findClassInternal(String, boolean) line: 391	
	BundleLoader.findClass(String, boolean) line: 345	
	BundleLoader.findClass(String) line: 337	
	EquinoxClassLoader(ModuleClassLoader).loadClass(String, boolean) line: 160	
	EquinoxClassLoader(ClassLoader).loadClass(String) line: 357	
	PDEPlugin.getPreferenceManager() line: 66	
	TargetStatus.initializeTargetStatus() line: 188	
	PDEPlugin.start(BundleContext) line: 200	
	BundleContextImpl$3.run() line: 771	
	BundleContextImpl$3.run() line: 1	
	AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]	
	BundleContextImpl.startActivator(BundleActivator) line: 764	
	BundleContextImpl.start() line: 721	
	EquinoxBundle.startWorker0() line: 936	
	EquinoxBundle$EquinoxModule.startWorker() line: 319	
	EquinoxBundle$EquinoxModule(Module).doStart(Module$StartOptions...) line: 571	
	EquinoxBundle$EquinoxModule(Module).start(Module$StartOptions...) line: 439	
	SecureAction.start(Module, Module$StartOptions...) line: 454	
	EclipseLazyStarter.postFindLocalClass(String, Class<?>, ClasspathManager) line: 107	
	ClasspathManager.findLocalClass(String) line: 531	
	EquinoxClassLoader(ModuleClassLoader).findLocalClass(String) line: 324	
	BundleLoader.findLocalClass(String) line: 320	
	BundleLoader.findClassInternal(String, boolean) line: 395	
	BundleLoader.findClass(String, boolean) line: 345	
	BundleLoader.findClass(String) line: 337	
	EquinoxClassLoader(ModuleClassLoader).loadClass(String, boolean) line: 160	
	EquinoxClassLoader(ClassLoader).loadClass(String) line: 357	
	EquinoxBundle.loadClass(String) line: 568	
	EquinoxRegistryStrategy(RegistryStrategyOSGI).createExecutableExtension(RegistryContributor, String, String) line: 174	
	ExtensionRegistry.createExecutableExtension(RegistryContributor, String, String) line: 905	
	ConfigurationElement.createExecutableExtension(String) line: 243	
	ConfigurationElementHandle.createExecutableExtension(String) line: 55	
	WorkbenchServiceRegistry.getSourceProviders() line: 177	
	SourceProviderService.readRegistry() line: 108	
	Workbench$47.runWithException() line: 2404	
	Workbench$47(StartupThreading$StartupRunnable).run() line: 32	
	RunnableLock.run() line: 35	
	UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 136	
	Display.runAsyncMessages(boolean) line: 4147	
	Display.readAndDispatch() line: 3764	
	Workbench.runUI() line: 2897	
	Workbench.access$8(Workbench) line: 2797	
	Workbench$5.run() line: 633	
	Realm.runWithDefault(Realm, Runnable) line: 332	
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 579	
	PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 150	
	IDEApplication.start(IApplicationContext) line: 135	
	EclipseAppHandle.run(Object) line: 196	
	EclipseAppLauncher.runApplication(Object) line: 134	
	EclipseAppLauncher.start(Object) line: 104	
	EclipseStarter.run(Object) line: 380	
	EclipseStarter.run(String[], Runnable) line: 235	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43	
	Method.invoke(Object, Object...) line: 497	
	Main.invokeFramework(String[], URL[]) line: 648	
	Main.basicRun(String[]) line: 603	
	Main.run(String[]) line: 1465	
	Main.main(String[]) line: 1438
Comment 10 Stefan Cordes CLA 2015-04-16 03:08:21 EDT
With that additional information I found a potential problem in my startup script.

Due to invalid indices I clear the folder 
.metadata\.plugins\org.eclipse.jdt.core
before starting eclipse.exe (yes another problem with indices but I have a workaround)

As in other workspaces the folder
.metadata/.plugins/org.eclipse.jdt.core/.org.eclipse.jdt.core.external.folders
is not existing and my script does a

del .metadata\.plugins\org.eclipse.jdt.core\*.* /s /q

I changed the command to 
del .metadata\.plugins\org.eclipse.jdt.core\*.* /q
which keeps the subfolders.

Hopefully this helps. (Attached the .project, which is created after sucessfully starting this workspace).
Comment 11 Stefan Cordes CLA 2015-04-16 03:08:59 EDT
Created attachment 252445 [details]
.project Out of .metadata\.plugins\org.eclipse.jdt.core\.org.eclipse.jdt.core.external.folders
Comment 12 Eclipse Genie CLA 2019-03-12 01:43:47 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.
Comment 13 Jay Arthanareeswaran CLA 2019-03-12 01:51:22 EDT
I believe the problem is still valid, but not sure if we have time to look at this right now.