Description
When I first open a wpilib project, VSCode will take as long as 10 minutes with the step displayed in status bar as:
Java: Initializing Workspace - XX%
I am working on an M3 MacBook Air. Everything is functional once this step completes.
In the OUTPUT pane I see:
Activating task providers java
Error: there is no registered task type 'Java'. Did you miss installing an extension that provides a corresponding task provider?
If I click on that Initializing Workspace message I can open the log shown below. In this case it took 7 minutes to initialize. Honestly I'm not even sure what tasks are being performed at this point so not sure how to troubleshoot. Any guidance would be appreciated.
=======Java log (truncated) ==========
!SESSION 2025-03-18 19:46:25.624 -----------------------------------------------
eclipse.buildId=unknown
java.version=17.0.12
java.vendor=Eclipse Adoptium
BootLoader constants: OS=macosx, ARCH=aarch64, WS=cocoa, NL=en_US
Framework arguments: --pipe=/private/var/folders/sr/kwx1m1k13tz6lp39gzzf1g040000gn/T/lsp-76a806f35ae61dd44270b999b96cc9ed.sock
Command-line arguments: -data /Users/matt/wpilib/2025/vscode/code-portable-data/user-data/User/workspaceStorage/616aff0a078b317aebb5573e7f0fc08d/redhat.java/jdt_ws --pipe=/private/var/folders/sr/kwx1m1k13tz6lp39gzzf1g040000gn/T/lsp-76a806f35ae61dd44270b999b96cc9ed.sock
This is a continuation of log file /Users/matt/wpilib/2025/vscode/code-portable-data/user-data/User/workspaceStorage/616aff0a078b317aebb5573e7f0fc08d/redhat.java/jdt_ws/.metadata/.bak_1.log
Created Time: 2025-03-18 19:50:57.725
!ENTRY org.eclipse.osgi 2 0 2025-03-18 19:50:57.725
!MESSAGE While loading class "org.eclipse.buildship.core.BuildConfiguration", thread "Thread[Worker-3: Initialize Workspace,5,main]" timed out waiting (30018ms) for thread "Thread[Worker-1: Initialize After Load,5,main]" to finish starting bundle "org.eclipse.buildship.core_3.1.10.v20241104-0945-s [22]". To avoid deadlock, thread "Thread[Worker-3: Initialize Workspace,5,main]" is proceeding but "org.eclipse.buildship.core.BuildConfiguration" may not be fully initialized.
!STACK 0
org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; type="osgi.bundle"; version:Version="3.1.10.v20241104-0945-s"; osgi.identity="org.eclipse.buildship.core"; singleton:="true" [id=22] STARTED [STARTED]
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:373)
at org.eclipse.osgi.container.Module.start(Module.java:447)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:528)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:620)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:347)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:414)
at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:516)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:193)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.getBuildConfiguration(GradleProjectImporter.java:532)
at org.eclipse.jdt.ls.core.internal.managers.GradleUtils.getGradleVersion(GradleUtils.java:148)
at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.inferGradleJavaHome(GradleProjectImporter.java:342)
at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.importToWorkspace(GradleProjectImporter.java:236)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.importProjects(ProjectsManager.java:164)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.initializeProjects(ProjectsManager.java:126)
at org.eclipse.jdt.ls.core.internal.handlers.InitHandler$1.runInWorkspace(InitHandler.java:277)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:43)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.util.concurrent.TimeoutException: Timeout after waiting 30 seconds to acquire the lock.
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:368)
... 20 more
Caused by: org.eclipse.osgi.framework.util.ThreadInfoReport: Thread dump
ThreadId: 1 ThreadName: main ThreadState: WAITING
Blocked On: java.lang.Object@64309f6f LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
java.base@17.0.12/java.lang.Object.wait(Object.java:338)
org.eclipse.jdt.ls.core.internal.LanguageServerApplication.start(LanguageServerApplication.java:63)
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
java.base@17.0.12/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base@17.0.12/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
java.base@17.0.12/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base@17.0.12/java.lang.reflect.Method.invoke(Method.java:569)
app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
app//org.eclipse.equinox.launcher.Main.run(Main.java:1481)
app//org.eclipse.equinox.launcher.Main.main(Main.java:1454)
ThreadId: 2 ThreadName: Reference Handler ThreadState: RUNNABLE
Blocked On: none
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
java.base@17.0.12/java.lang.ref.Reference.processPendingReferences(Reference.java:253)
java.base@17.0.12/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:215)
ThreadId: 3 ThreadName: Finalizer ThreadState: WAITING
Blocked On: java.lang.ref.ReferenceQueue$Lock@38967cd LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
java.base@17.0.12/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@17.0.12/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.base@17.0.12/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:172)
ThreadId: 4 ThreadName: Signal Dispatcher ThreadState: RUNNABLE
Blocked On: none
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
ThreadId: 12 ThreadName: Common-Cleaner ThreadState: TIMED_WAITING
Blocked On: java.lang.ref.ReferenceQueue$Lock@3e9047dd LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
java.base@17.0.12/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@17.0.12/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)
java.base@17.0.12/java.lang.Thread.run(Thread.java:840)
java.base@17.0.12/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)
ThreadId: 13 ThreadName: Notification Thread ThreadState: RUNNABLE
Blocked On: none
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
ThreadId: 15 ThreadName: Active Thread: Equinox Container: 7ed64f32-34f2-47fa-a5fd-75307352abdd ThreadState: TIMED_WAITING
Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@68ab0e91 LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.12/java.lang.Thread.run(Thread.java:840)
ThreadId: 17 ThreadName: Refresh Thread: Equinox Container: 7ed64f32-34f2-47fa-a5fd-75307352abdd ThreadState: WAITING
Blocked On: org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@8003f0c LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
java.base@17.0.12/java.lang.Object.wait(Object.java:338)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:396)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
ThreadId: 18 ThreadName: Framework Event Dispatcher: Equinox Container: 7ed64f32-34f2-47fa-a5fd-75307352abdd ThreadState: WAITING
Blocked On: org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@40ff96ce LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
java.base@17.0.12/java.lang.Object.wait(Object.java:338)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:396)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
ThreadId: 19 ThreadName: Start Level: Equinox Container: 7ed64f32-34f2-47fa-a5fd-75307352abdd ThreadState: WAITING
Blocked On: org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@2157984 LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
java.base@17.0.12/java.lang.Object.wait(Object.java:338)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:396)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
ThreadId: 21 ThreadName: Bundle File Closer ThreadState: WAITING
Blocked On: org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@7c6d8fa3 LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
java.base@17.0.12/java.lang.Object.wait(Object.java:338)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:396)
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
ThreadId: 22 ThreadName: SCR Component Actor ThreadState: WAITING
Blocked On: java.util.LinkedList@4c02c939 LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
java.base@17.0.12/java.lang.Object.wait(Object.java:338)
org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:83)
java.base@17.0.12/java.lang.Thread.run(Thread.java:840)
ThreadId: 24 ThreadName: Worker-JM ThreadState: WAITING
Blocked On: java.util.ArrayList@457367ea LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:61)
ThreadId: 25 ThreadName: Worker-0 ThreadState: TIMED_WAITING
Blocked On: org.eclipse.core.internal.jobs.WorkerPool@7951131a LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked: none
Monitors Locked: none
Stack Trace:
java.base@17.0.12/java.lang.Object.wait(Native Method)
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:200)
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:242)
org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
ThreadId: 26 ThreadName: Worker-1: Initialize After Load ThreadState: WAITING
Blocked On: com.google.common.util.concurrent.SettableFuture@69864878 LockOwnerId: -1 LockOwnerName: null
Synchronizers Locked:
java.util.concurrent.locks.ReentrantLock$NonfairSync@7906d06c
Monitors Locked: none
Stack Trace:
java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:564)
com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:111)
com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:247)
com.google.common.cache.LocalCache$LoadingValueReference.waitForValue(LocalCache.java:3626)
com.google.common.cache.LocalCache$Segment.waitForLoadingValue(LocalCache.java:2209)
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2196)
com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2079)
com.google.common.cache.LocalCache.get(LocalCache.java:4017)
com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4040)
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4989)
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4996)
org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence.loadModel(DefaultModelPersistence.java:70)
org.eclipse.buildship.core.internal.CorePlugin.scheduleSynchronizationForAbsentModels(CorePlugin.java:223)
org.eclipse.buildship.core.internal.CorePlugin.start(CorePlugin.java:120)
org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:822)
org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
java.base@17.0.12/java.security.AccessController.executePrivileged(AccessController.java:807)
java.base@17.0.12/java.security.AccessController.doPrivileged(AccessController.java:569)
org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:814)
org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:764)
org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1057)
org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:387)
org.eclipse.osgi.container.Module.doStart(Module.java:639)
org.eclipse.osgi.container.Module.start(Module.java:498)
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:528)
org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122)
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:620)
org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:347)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:414)
org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:520)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434)
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:193)
java.base@17.0.12/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:643)
org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:221)
org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(Ex