Skip to content

Compilation fails #4229

Closed
Closed

Description

@ChrisVesters

I have had some issues after updating to JDK 25 (even though officially supported).
I already uninstalled and re-installed all plugins and that fixed some issues (such as tests not being discovered)
But when I try to run a test now, I get a ClassNotFoundException on the test class.

When I force a full build, I see this stacktrace:

Error - 10:17:00] 04 Nov 2025, 10:17:00 Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
org.eclipse.jdt.internal.core.builder.AbortIncrementalBuildException
	at org.eclipse.jdt.internal.core.builder.NameEnvironment.findClass(NameEnvironment.java:574)
	at org.eclipse.jdt.internal.core.builder.NameEnvironment.findType(NameEnvironment.java:644)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.lambda$0(LookupEnvironment.java:301)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForTypeFromModules(LookupEnvironment.java:453)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:300)
	at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:116)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:242)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:253)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:3499)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:3201)
	at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:60)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:509)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:612)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:608)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypeFor(SourceTypeBinding.java:944)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypeFor(SourceTypeBinding.java:1976)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor.visit(AnnotationDiscoveryVisitor.java:109)
	at org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.traverse(FieldDeclaration.java:394)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1645)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:816)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:777)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundEnvImpl.<init>(RoundEnvImpl.java:62)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:168)
	at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:132)
	at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:859)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:333)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:309)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:486)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:253)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:377)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:118)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:315)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:218)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1109)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:299)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:355)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:449)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:452)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:564)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:512)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:594)
	at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:615)
	at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:499)
	at org.eclipse.jdt.ls.core.internal.handlers.BuildWorkspaceHandler.buildWorkspace(BuildWorkspaceHandler.java:65)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$29(JDTLanguageServer.java:1011)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$63(JDTLanguageServer.java:1252)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

[Error - 10:17:00] 04 Nov 2025, 10:17:00 Failed to build workspace.
org.eclipse.core.internal.resources.ResourceException: Errors occurred during the build.
	at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:632)
	at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:499)
	at org.eclipse.jdt.ls.core.internal.handlers.BuildWorkspaceHandler.buildWorkspace(BuildWorkspaceHandler.java:65)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$29(JDTLanguageServer.java:1011)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$63(JDTLanguageServer.java:1252)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Contains: Errors running builder 'Java Builder' on project 'notula'.
org.eclipse.jdt.internal.core.builder.AbortIncrementalBuildException
	at org.eclipse.jdt.internal.core.builder.NameEnvironment.findClass(NameEnvironment.java:574)
	at org.eclipse.jdt.internal.core.builder.NameEnvironment.findType(NameEnvironment.java:644)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.lambda$0(LookupEnvironment.java:301)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForTypeFromModules(LookupEnvironment.java:453)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:300)
	at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:116)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:242)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:253)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:3499)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:3201)
	at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:60)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:509)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:612)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:608)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypeFor(SourceTypeBinding.java:944)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypeFor(SourceTypeBinding.java:1976)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor.visit(AnnotationDiscoveryVisitor.java:109)
	at org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.traverse(FieldDeclaration.java:394)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1645)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:816)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:777)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundEnvImpl.<init>(RoundEnvImpl.java:62)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:168)
	at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:132)
	at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:859)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:333)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:309)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:486)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:253)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:377)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:118)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:315)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:218)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1109)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:299)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:355)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:449)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:452)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:564)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:512)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:594)
	at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:615)
	at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:499)
	at org.eclipse.jdt.ls.core.internal.handlers.BuildWorkspaceHandler.buildWorkspace(BuildWorkspaceHandler.java:65)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$29(JDTLanguageServer.java:1011)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$63(JDTLanguageServer.java:1252)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

[Error - 10:17:00] 04 Nov 2025, 10:17:00 Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
org.eclipse.jdt.internal.core.builder.AbortIncrementalBuildException
	at org.eclipse.jdt.internal.core.builder.NameEnvironment.findClass(NameEnvironment.java:574)
	at org.eclipse.jdt.internal.core.builder.NameEnvironment.findType(NameEnvironment.java:644)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.lambda$0(LookupEnvironment.java:301)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForTypeFromModules(LookupEnvironment.java:453)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:300)
	at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:116)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:242)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:253)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:3499)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:3201)
	at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:60)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:509)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:612)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:608)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypeFor(SourceTypeBinding.java:944)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypeFor(SourceTypeBinding.java:1976)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor.visit(AnnotationDiscoveryVisitor.java:109)
	at org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.traverse(FieldDeclaration.java:394)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1645)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:816)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:777)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundEnvImpl.<init>(RoundEnvImpl.java:62)
	at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:168)
	at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:132)
	at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:859)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:333)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:309)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:486)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:253)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:377)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:118)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:315)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:224)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1109)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:299)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:355)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:449)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:452)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:564)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:512)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:594)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:208)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:309)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

[Error - 10:17:00] 04 Nov 2025, 10:17:00 Errors occurred during the build.

Activity

  1. fbricon commented on Nov 4, 2025

    @fbricon
    Collaborator

    What did you update to java 25? your project compilation target or the jdk to run the java language server?
    Can you try running the Java: Clean Java Language Server Workspace command?

  2. fbricon commented on Nov 4, 2025

    @fbricon
    Collaborator

    @jjohnstn does this ring any bells?

  3. ChrisVesters commented on Nov 4, 2025

    @ChrisVesters
    Author

    @fbricon I have updated everything to java/JDK 25
    I have already tried to clean the Java Language Server Workspace, but with no result.

    I do notice however that the option to configure which Java runtime to use no longer is present. Maybe that is relevant?

    Note: I am using Mac

  4. jjohnstn commented on Nov 4, 2025

    @jjohnstn
    Collaborator

    @jjohnstn does this ring any bells?

    No, unfortunately.

  5. ChrisVesters commented on Nov 5, 2025

    @ChrisVesters
    Author

    I have an update, but I don't know whether it will clear things up or not.
    So I tried it on a different project. I updated the pom version to 25 as well, and there everything works.
    Same machine, 'same' vscode (but different workspace), different results.

    The thing is, I don't feel like there is anything wrong with the compiler or other language support features.
    The only thing that really isn't working is running the tests in vscode. And the cause of that is that the test-classes are not being compiled. So I get a ClassNotFoundException.

  6. fbricon commented on Nov 5, 2025

    @fbricon
    Collaborator

    did you update vscode-java-test to the latest release?

  7. ChrisVesters commented on Nov 5, 2025

    @ChrisVesters
    Author

    I have everything up-to-date. And if it wasn't I assume it would be the same for the project where it does work.

  8. fbricon commented on Nov 5, 2025

    @fbricon
    Collaborator

    Can you reproduce if you open the same code moved to a different location? different machine or OS?

  9. ChrisVesters commented on Nov 5, 2025

    @ChrisVesters
    Author

    @fbricon I tried it on a different computer (LMDE 6), and it is exactly the same.
    So it seems there is something wrong with the project itself.
    Any idea on how to fix it? Or get more information on what exactly is the problem?

  10. ChrisVesters commented on Nov 5, 2025

    @ChrisVesters
    Author

    @fbricon I just thought of something to try out myself.
    I went back to the main branch, which worked before, and that one still works!
    So I will investigate what the difference is, and when exactly it starts to break and let you know.

    I don't need any further information or support from you or your team.
    Thanks for the quick responses and the help/suggestions.

    I will keep this issue open so I can keep you informed and it can maybe help others.

  11. fbricon commented on Nov 5, 2025

    @fbricon
    Collaborator

    It might be some code in your project the ECJ compiler really really doesn't like. Or somewhere in the above JDT layer.
    You can try switching the compiler to javac, see if it makes any difference (See java.jdt.ls.javac.enabled setting)

  12. ChrisVesters commented on Nov 6, 2025

    @ChrisVesters
    Author

    @fbricon I found the cause of the issue. It was some weird refactoring gone wrong.
    I had a test class where the class name did not match the file name, which is of course not valid in Java.
    I don't understand that there wasn't some error pointing this out to me, but after fixing this, the error is now gone.

    Thank you for your help, and I am sorry for my silly mistake.

  13. fbricon commented on Nov 6, 2025

    @fbricon
    Collaborator

    it's actually valid with javac, ECJ doesn't allow it

  14. ChrisVesters commented on Nov 6, 2025

    @ChrisVesters
    Author

    I assume the issue stems from the fact that my class was not declared as public, but as default scope (since it was a test class). Anyway, I am just glad it is resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions