Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.IllegalArgumentException Attempted to endRule & - java.lang.IllegalArgumentException Worker thread ended job: Classpath Update Job(29039), but still holds rule #3997

Open
ramazangirgin-check24 opened this issue Mar 31, 2025 · 14 comments
Labels

Comments

@ramazangirgin-check24
Copy link

ramazangirgin-check24 commented Mar 31, 2025

Hi,
We have a multi-module Gradle-based Java Spring application. When trying to open it in Cursor IDE with the Language Support for Java plugin enabled, the project does not fully load.

We had a circular dependency issue which i reported in microsoft/vscode-gradle#1659 and #3986 but it seems with Language Support for Java(TM) by Red Hat plugin Version 1.41.0, our gradle sub projects are visible as expected, without circular dependencies reported and without weird project names.

But now, with Language Support for Java(TM) by Red Hat plugin Version 1.41.0, when i open my project even java projects are visible in JAVA PROJECTS view, the code is not loaded, not detected properly after waiting for some hours.

I see the following kind of errors logged for plugin. There are too many logged errors. I am putting here just some samples.

[Error - 11:56:38] 31 Mar 2025, 11:56:38 An internal error occurred during: "Classpath Update Job".
Attempted to endRule: null, does not match most recent begin: R/.  See log for trace information if rule tracing is enabled.
java.lang.IllegalArgumentException: Attempted to endRule: null, does not match most recent begin: R/.  See log for trace information if rule tracing is enabled.
	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:68)
	at org.eclipse.core.internal.jobs.ThreadJob.illegalPop(ThreadJob.java:126)
	at org.eclipse.core.internal.jobs.ThreadJob.pop(ThreadJob.java:391)
	at org.eclipse.core.internal.jobs.ImplicitJobs.end(ImplicitJobs.java:118)
	at org.eclipse.core.internal.jobs.JobManager.endRule(JobManager.java:799)
	at org.eclipse.core.internal.resources.WorkManager.checkOut(WorkManager.java:174)
	at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1605)
	at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:50)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

[Error - 11:56:38] 31 Mar 2025, 11:56:38 Worker thread ended job: Classpath Update Job(29039), but still holds rule: ThreadJob(Classpath Update Job(29039),[R/])
Worker thread ended job: Classpath Update Job(29039), but still holds rule: ThreadJob(Classpath Update Job(29039),[R/])
java.lang.IllegalStateException: Worker thread ended job: Classpath Update Job(29039), but still holds rule: ThreadJob(Classpath Update Job(29039),[R/])
	at org.eclipse.core.internal.jobs.ImplicitJobs.endJob(ImplicitJobs.java:139)
	at org.eclipse.core.internal.jobs.WorkerPool.endJob(WorkerPool.java:119)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:83)

Our installed versions;
OS Version: macos 15.3.2 (24D81)
Gradle: 8.12.1
Java: OpenJDK 21.0.3 LTS
Spring Boot: 3.4.3
Cursor Version: 0.47.8 (Universal)
Language Support for Java(TM) by Red Hat plugin Version 1.41.0
vscode-gradle Extension Version: 3.16.4

It looks like the issue is related to latest Language Support for Java(TM) by Red Hat plugin Version 1.41.0 version.
Can you please have a look ?

Thanks in advance
Ramazan

@snjeza
Copy link
Contributor

snjeza commented Mar 31, 2025

@ramazangirgin-check24 Could you try to set

 "java.compile.nullAnalysis.mode": "disabled",

@ramazangirgin-check24
Copy link
Author

Hi, thank you @snjeza when i set "java.compile.nullAnalysis.mode": "disabled", i don't see reported IllegalArgumentException errors anymore.

But still my project is loading very very slow and i see the following type of errors logged.

[Error - 16:59:49] 31 Mar 2025, 16:59:49 Error checking whether PackageFragmentRoot is on module path! <project root> [in xxx-api] is not on its project's build path Java Model Exception: Error in Java Model (code 1006): <project root> [in xxx-api] is not on its project's build path at org.eclipse.jdt.internal.core.PackageFragmentRoot.getRawClasspathEntry(PackageFragmentRoot.java:622) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.computeModuleFor(JavaSearchNameEnvironment.java:610) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.mapToClassPathLocation(JavaSearchNameEnvironment.java:302) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.computeClasspathLocations(JavaSearchNameEnvironment.java:215) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.computeClasspathLocations(JavaSearchNameEnvironment.java:187) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.<init>(JavaSearchNameEnvironment.java:95) at org.eclipse.jdt.internal.core.search.indexing.SourceIndexer.resolveDocument(SourceIndexer.java:186) at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.resolveDocument(JavaSearchParticipant.java:125) at org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexResolvedDocument(IndexManager.java:668) at org.eclipse.jdt.internal.core.search.indexing.IndexManager$2.execute(IndexManager.java:1272) at org.eclipse.jdt.internal.core.search.processing.JobManager.indexerLoop(JobManager.java:541) at java.base/java.lang.Thread.run(Unknown Source)
and

[Error - 17:00:19] 31 Mar 2025, 17:00:19 Cannot download Gradle sha256 checksum: https://services.gradle.org/distributions-snapshots/gradle-8.3-20230816232259+0000-wrapper.jar.sha256
https://downloads.gradle.org/distributions-snapshots/gradle-8.3-20230816232259+0000-wrapper.jar.sha256
java.io.FileNotFoundException: https://downloads.gradle.org/distributions-snapshots/gradle-8.3-20230816232259+0000-wrapper.jar.sha256
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
	at org.eclipse.jdt.ls.internal.gradle.checksums.DownloadChecksumJob.run(DownloadChecksumJob.java:77)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Actually for "Cannot download Gradle", we already configured our repository and we have use Gradle: 8.12.1 but it seems gradle / project doesn't use it and tries to load different version from gradle.org.

I also see the following errors logged
"message": "The project cannot be built until its prerequisite xx-xxx-xx-api is built. Cleaning and building all projects is recommended" and cleaning workspace unfortunately doesn't help.

Also IDE is crashed after some minutes while loading the project with error "The window terminated unexpectedly (reason: 'crashed', code: '5')"

Unfortunately, i don't have loading completed project setup in Cursor.

besides solving the root cause of the errors mentioned above, is there any other way to make loading faster anyhow, increasing speed for project load, "Refreshing Workspace" speed etc ?

Thanks in advance
Ramazan

@snjeza
Copy link
Contributor

snjeza commented Mar 31, 2025

@ramazangirginattach Could you attach a project example?

@ramazangirgin-check24
Copy link
Author

ramazangirgin-check24 commented Mar 31, 2025

@snjeza i don't think it will be possible for me to attach sample project example for loading issues or errors.
Our current project has ~600 gradle subprojects and i don't know how can i create a sample project with similar pattern.

If somehow possible to enable debug / trace logging, i can enable it and can send you it.

The point is ;
there is no problem with building project from terminal with gradle commands nor problem with loading the whole project with Intellij Idea but somehow it doesn't work with Cursor IDE, each time we face with different kind of errors.

@snjeza
Copy link
Contributor

snjeza commented Mar 31, 2025

@ramazangirgin-check24 Could you try to import your project in VS Code and attach your server log - Enable logging

@ramazangirgin-check24
Copy link
Author

@snjeza please see server log as attached.

rmz-01-04-2025-trace.log

@rgrunber
Copy link
Member

rgrunber commented Apr 1, 2025

In #3995 , there was an issue where Gradle was not getting loaded and I was able to narrow it down to something introduced in 1.41.0. Can you try the latest pre-release build of vscode-java, v1.42.2025040104, which should contain the fix. If it solves the issue, this is probably the same issue. It should just solve the issue of the project not loading, and not anything else.

@rgrunber rgrunber added the Gradle label Apr 1, 2025
@ramazangirgin-check24
Copy link
Author

@rgrunber
I don't see pre-release v1.42.2025040104 downloadable in my Cursor IDE.

Image

how can i download it manually and install for testing it ?

@ramazangirgin-check24
Copy link
Author

ramazangirgin-check24 commented Apr 1, 2025

@ramazangirgin-check24
Copy link
Author

@rgrunber tried version v1.42.2025040104

  • Unfortunately my project loaded with a bit weird names similar to in Projects with same name lead to unintended conflict resolution gradle/gradle#847 and False reported circular dependencies in Cursor IDE microsoft/vscode-gradle#1659. It was visible correctly with v1.41.0
  • I see some a lot of logged errors with the following details.
    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) !SUBENTRY 1 com.microsoft.gradle.bs.importer 4 75 2025-04-01 12:54:56.124 !MESSAGE Errors running builder 'JavaProblemChecker' on project 'baufi-dms-war'. !STACK 0
    pleaese see the logs below
    rmz-01-04-2025-13_00_trace.log

Unfortunately the project is not fully loaded, and no visible progress in java plugin logs
Image
Image
Image
Image

@rgrunber
Copy link
Member

rgrunber commented Apr 1, 2025

For the java.lang.NoSuchMethodError: 'java.util.List org.eclipse.jdt.internal.core.JavaProject.internalDefaultRootModules(java.lang.Iterable, java.util.function.Function, java.util.function.Function)' error, could you try using vscode-gradle from the pre-release stream ? It shoud be version 3.17.2025032611 or newer that has the fix.

@ramazangirgin-check24
Copy link
Author

ramazangirgin-check24 commented Apr 1, 2025

@rgrunber
upgraded vscode-gradle version to 3.17.2025032611 but now i see tons of "Java Model Exception: Error in Java Model "

`!ENTRY org.eclipse.jdt.core 4 4 2025-04-01 13:59:34.963
!MESSAGE JavaBuilder handling CoreException while building: impl_____________________________________________________________________________________________________________________________________
!STACK 1
Java Model Exception: Error in Java Model (code 969): impl_____________________________________________________________________________________________________________________________________ does not exist
	at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:546)
	at org.eclipse.jdt.internal.core.JavaModelManager.getPerProjectInfoCheckExistence(JavaModelManager.java:2549)
	at org.eclipse.jdt.internal.core.JavaProject.getPerProjectInfo(JavaProject.java:2361)
	at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2434)
	at org.eclipse.jdt.internal.core.JavaProject.computeExpandedClasspath(JavaProject.java:542)
	at org.eclipse.jdt.internal.core.JavaProject.getExpandedClasspath(JavaProject.java:1985)
	at com.microsoft.java.builder.jdtbuilder.NameEnvironment.computeClasspathLocations(NameEnvironment.java:117)
	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)
!SUBENTRY 1 org.eclipse.jdt.core 4 969 2025-04-01 13:59:34.963`

and our big project is not loaded.


i also see the following error logged and test classes are not detected. It is not possible to run test on it. ( I tried it with small gradle java project and it fails with it as well )

!ENTRY com.microsoft.java.test.plugin 4 0 2025-04-01 13:58:05.184
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: com.microsoft.java.test.plugin [119]
  Unresolved requirement: Require-Bundle: org.jacoco.core; bundle-version="0.8.12"
    -> Bundle-SymbolicName: org.jacoco.core; bundle-version="0.8.12.202403310830"
       org.jacoco.core [118]
         Unresolved requirement: Import-Package: org.objectweb.asm; version="[9.7.0,9.8.0)"

	at org.eclipse.osgi.container.Module.start(Module.java:495)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:2111)
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:146)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:2102)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:2042)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:2004)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1916)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

!ENTRY org.eclipse.jdt.ls.core 1 0 2025-04-01 13:58:06.089
!MESSAGE class org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin is started

!ENTRY org.jacoco.core 4 0 2025-04-01 13:58:06.108
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.jacoco.core [118]
  Unresolved requirement: Import-Package: org.objectweb.asm; version="[9.7.0,9.8.0)"

	at org.eclipse.osgi.container.Module.start(Module.java:495)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:2111)
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:146)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:2102)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:2044)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:2004)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1916)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

@rgrunber
Copy link
Member

rgrunber commented Apr 1, 2025

The first error might be something else in vscode-gradle based on the stacktrace. The second error is explained at #3995 (comment) . It's from https://github.com/microsoft/vscode-java-test .

@ramazangirgin-check24
Copy link
Author

@rgrunber thank you, i seems we need to wait for the fix from multiple plugins for the errors.

What about weird project names and circular dependency issue which i reported in
#3997 (comment) ?

Unfortunately my project loaded with a bit weird names similar to in gradle/gradle#847 and microsoft/vscode-gradle#1659. It was visible correctly with v1.41.0 but doesn't work with pre-release version v1.42.2025040104 anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants