| Summary: | Startup hangs in JavaCore.java:3095 without holding a monitor | ||
|---|---|---|---|
| Product: | [Eclipse Project] JDT | Reporter: | Stefan Cordes <rsc> |
| Component: | Core | Assignee: | 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: | |||
Created attachment 250334 [details]
Visual VM Thread dump a few minutes later.
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) 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? (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 (?). 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. 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)
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).
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 :( 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 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). Created attachment 252445 [details]
.project Out of .metadata\.plugins\org.eclipse.jdt.core\.org.eclipse.jdt.core.external.folders
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. I believe the problem is still valid, but not sure if we have time to look at this right now. |
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.