I have a Java gradle project that has been working fine. I restarted vscode today, and I think it updated some things. Now I get sporadic NoSuchMethodError when running/debugging tests. If I make an edit and save a source file, then it will usually work one time. If I try to run/debug again after than without code changes, it almost always fails.
I checked the gradle version from the terminal and in the Java Runtime Configuration, and they're pointing to the same v21 JDK.
I'm on Java extension pack version 0.29.0, and Debugger for Java version 0.58.1. I tried updating to the prerelease version of the extension pack, and had the same problem.
!ENTRY org.eclipse.core.resources 4 75 2025-03-06 18:12:02.231
!MESSAGE Errors occurred during the build.
!SUBENTRY 1 com.microsoft.gradle.bs.importer 4 75 2025-03-06 18:12:02.231
!MESSAGE Errors running builder 'JavaProblemChecker' on project 'app'.
!STACK 0
java.lang.NoSuchMethodError: 'java.util.List org.eclipse.jdt.internal.core.JavaProject.internalDefaultRootModules(java.lang.Iterable, java.util.function.Function, java.util.function.Function)'
at com.microsoft.java.builder.jdtbuilder.ClasspathJrt.selectModules(ClasspathJrt.java:278)
at com.microsoft.java.builder.jdtbuilder.ClasspathJrt.getModuleNames(ClasspathJrt.java:265)
at com.microsoft.java.builder.jdtbuilder.NameEnvironment.collectModuleEntries(NameEnvironment.java:445)
at com.microsoft.java.builder.jdtbuilder.NameEnvironment.computeClasspathLocations(NameEnvironment.java:343)
at com.microsoft.java.builder.jdtbuilder.NameEnvironment.<init>(NameEnvironment.java:64)
at com.microsoft.java.builder.JavaNameEnvironment.<init>(JavaNameEnvironment.java:41)
at com.microsoft.java.builder.JavaProblemChecker.createNameEnvironment(JavaProblemChecker.java:51)
at com.microsoft.java.builder.jdtbuilder.JavaBuilder.initializeBuilder(JavaBuilder.java:653)
at com.microsoft.java.builder.jdtbuilder.JavaBuilder.build(JavaBuilder.java:192)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1077)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:296)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:352)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:441)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:444)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:555)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:503)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:585)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:207)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:300)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
It's a bug in the gradle plugin: https://github.com/microsoft/vscode-gradle/issues/1651