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

assertion failed: Marker property value is too long #2424

Closed
mattfbacon opened this issue Jan 26, 2023 · 14 comments · Fixed by #3084
Closed

assertion failed: Marker property value is too long #2424

mattfbacon opened this issue Jan 26, 2023 · 14 comments · Fixed by #3084

Comments

@mattfbacon
Copy link

I'm trying to use JDTLS in Neovim. The project is an Android app using Gradle.

Here's the full error that I get:

assertion failed: Marker property value is too long: org.gradle.tooling.BuildActionFailureException: The supplied phased action failed with an exception.
        at org.gradle.tooling.internal.consumer.connection.PhasedActionAwareConsumerConnection.run(PhasedActionAwareConsumerConnection.java:58)
        at org.gradle.tooling.internal.consumer.connection.ParameterValidatingConsumerConnection.run(ParameterValidatingConsumerConnection.java:62)
        at org.gradle.tooling.internal.consumer.DefaultPhasedBuildActionExecuter$1.run(DefaultPhasedBuildActionExecuter.java:78)
        at org.gradle.tooling.internal.consumer.DefaultPhasedBuildActionExecuter$1.run(DefaultPhasedBuildActionExecuter.java:70)
        at org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.run(LazyConsumerActionExecutor.java:143)
        at org.gradle.tooling.internal.consumer.connection.CancellableConsumerActionExecutor.run(CancellableConsumerActionExecutor.java:45)
        at org.gradle.tooling.internal.consumer.connection.ProgressLoggingConsumerActionExecutor.run(ProgressLoggingConsumerActionExecutor.java:61)
        at org.gradle.tooling.internal.consumer.connection.RethrowingErrorsConsumerActionExecutor.run(RethrowingErrorsConsumerActionExecutor.java:38)
        at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:67)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1589)
        at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
        at org.gradle.tooling.internal.consumer.DefaultPhasedBuildActionExecuter.run(DefaultPhasedBuildActionExecuter.java:63)
        at org.gradle.tooling.internal.consumer.DefaultPhasedBuildActionExecuter.run(DefaultPhasedBuildActionExecuter.java:31)
        at org.eclipse.buildship.core.internal.workspace.EclipseModelUtils.runPhasedModelQuery(EclipseModelUtils.java:111)
        at org.eclipse.buildship.core.internal.workspace.EclipseModelUtils.runTasksAndQueryCompositeModelWithRuntimInfo(EclipseModelUtils.java:86)
        at org.eclipse.buildship.core.internal.workspace.EclipseModelUtils.runTasksAndQueryModels(EclipseModelUtils.java:60)
        at org.eclipse.buildship.core.internal.workspace.DefaultModelProvider.lambda$fetchEclipseProjectAndRunSyncTasks$4(DefaultModelProvider.java:75)
        at org.eclipse.buildship.core.internal.DefaultGradleBuild$GradleConnectionOperation.runInToolingApi(DefaultGradleBuild.java:331)
        at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager$WorkspaceRunnableAdapter.run(DefaultToolingApiOperationManager.java:58)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2405)
        at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager.run(DefaultToolingApiOperationManager.java:39)
        at org.eclipse.buildship.core.internal.DefaultGradleBuild.withConnection(DefaultGradleBuild.java:124)
        at org.eclipse.buildship.core.internal.workspace.DefaultModelProvider.lambda$fetchEclipseProjectAndRunSyncTasks$5(DefaultModelProvider.java:75)
        at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4853)
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
        at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4848)
        at org.eclipse.buildship.core.internal.workspace.DefaultModelProvider.getFromCache(DefaultModelProvider.java:98)
        at org.eclipse.buildship.core.internal.workspace.DefaultModelProvider.executeOperation(DefaultModelProvider.java:90)
        at org.eclipse.buildship.core.internal.workspace.DefaultModelProvider.fetchEclipseProjectAndRunSyncTasks(DefaultModelProvider.java:72)
        at org.eclipse.buildship.core.internal.DefaultGradleBuild$SynchronizeOperation.runInToolingApi(DefaultGradleBuild.java:228)
        at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager$WorkspaceRunnableAdapter.run(DefaultToolingApiOperationManager.java:58)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2405)
        at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager.run(DefaultToolingApiOperationManager.java:39)
        at org.eclipse.buildship.core.internal.DefaultGradleBuild$SynchronizeOperation.run(DefaultGradleBuild.java:194)
        at org.eclipse.buildship.core.internal.DefaultGradleBuild.synchronize(DefaultGradleBuild.java:102)
        at org.eclipse.buildship.core.internal.DefaultGradleBuild.synchronize(DefaultGradleBuild.java:88)
        at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.startSynchronization(GradleProjectImporter.java:409)
        at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.importDir(GradleProjectImporter.java:297)
        at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.importToWorkspace(GradleProjectImporter.java:210)
        at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.importProjects(ProjectsManager.java:148)
        at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.initializeProjects(ProjectsManager.java:111)
        at org.eclipse.jdt.ls.core.internal.handlers.InitHandler$1.runInWorkspace(InitHandler.java:242)
        at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:43)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.gradle.cache.CacheOpenException: Could not open init generic class cache for initialization script '/home/matt/.cache/jdtls/config/org.eclipse.osgi/51/0/.cp/gradle/init/init.gradle' (/home/matt/.gradle/caches/7.3.3/scripts/cqg1ejjga62m6l95a1u1verba).
        at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:91)
        at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:43)
        at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:103)
        at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:68)
        at org.gradle.cache.internal.DefaultCacheRepository$PersistentCacheBuilder.open(DefaultCacheRepository.java:117)
        at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler.compile(FileCacheBackedScriptClassCompiler.java:116)
        at org.gradle.groovy.scripts.internal.CrossBuildInMemoryCachingScriptClassCache.getOrCompile(CrossBuildInMemoryCachingScriptClassCache.java:50)
        at org.gradle.groovy.scripts.internal.BuildScopeInMemoryCachingScriptClassCompiler.compile(BuildScopeInMemoryCachingScriptClassCompiler.java:50)
        at org.gradle.groovy.scripts.DefaultScriptCompilerFactory$ScriptCompilerImpl.compile(DefaultScriptCompilerFactory.java:49)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:125)
        at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
        at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44)
        at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62)
        at org.gradle.configuration.DefaultInitScriptProcessor.process(DefaultInitScriptProcessor.java:50)
        at org.gradle.initialization.InitScriptHandler$1.run(InitScriptHandler.java:56)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
        at org.gradle.initialization.InitScriptHandler.executeScripts(InitScriptHandler.java:51)
        at org.gradle.initialization.InitScriptHandlingSettingsLoader.findAndLoadSettings(InitScriptHandlingSettingsLoader
@snjeza
Copy link
Contributor

snjeza commented Jan 26, 2023

@mattfbacon Could you provide a project example reproducing the error?
Could you reproduce the issue in VS Code?

@mattfbacon
Copy link
Author

Cannot reproduce in VS Code using the redhat extension (the LS is broken in VS Code for a different reason but the LS at least starts properly).

For a minimal project that can reproduce, create a directory and add two empty files Main.java and build.gradle. Then open Main.java.

@jdsee
Copy link

jdsee commented Mar 25, 2023

I'm getting the same error.

@kylechui
Copy link

kylechui commented May 1, 2023

I've also been getting the same error with Neovim v0.9, and can't use JDTLS because of it. It also occurs with the minimal project that @mattfbacon provided (empty Main.java and build.gradle).

@mattfbacon
Copy link
Author

@kylechui

I've also been getting the same error with Neovim v0.9, and can't use JDTLS because of it. It also occurs with the minimal project that mattfbacon provided (empty Main.java and build.gradle).

👀 What platform? Anything unique about your setup that might be a common point between us?

@kylechui
Copy link

kylechui commented May 1, 2023

I've been running on Linux (NixOS 22.11). TBH I feel like my setup would be quite unique so I'm not sure...

@mattfbacon
Copy link
Author

Well if you are using NixOS then it should be reproducible??

@kylechui
Copy link

kylechui commented May 1, 2023

Yeah, although I just switched so I'm not 100% familiar with the ecosystem yet. I imagine if anyone wanted to reproduce this bug they would need to be using nixpkg as well.

Have you found any alternative? I've been using java-language-server but it doesnt recognize package statements well, and causes hundreds of errors in my codebase.

@kylechui
Copy link

kylechui commented May 26, 2023

I think that the issue for me might be due to the length of /path/to/project? Currently the server launches and works properly for files that are "closer" to my home directory, but the default directory that I work in (very nested) seems to crash the server with the same error in the original post.

EDIT: One of the things that I have changed is to add a -data value, although I'm not sure how relevant that is to this issue.

@andresestrella
Copy link

I am having this issue as well on Windows 10

@leana8959
Copy link

leana8959 commented Jan 8, 2024

UPDATE: apparently this prevents jdtls from figuring out what files are project files.

I'm having the same issue, it could indeed be triggered because the -data argument is too long.
Using neovim, I simply decided to put the data directory in a subdir of the project directory.
Here's my configuration if it helps:

local java_cwd = vim.fs.dirname(
    vim.fs.find({ "gradlew", ".git", "mvnw" }, { upward = true })[1]
)
local config = {
    on_attach = on_attach,
    capabilities = capabilities,
    cmd = {
        -- https://github.com/NixOS/nixpkgs/issues/232822#issuecomment-1564243667
        -- `-data` argument is necessary
        "jdt-language-server",
        "-data", java_cwd .. "/.jdtls",
    },
    root_dir = java_cwd,
}
local jdtls_group = vim.api.nvim_create_augroup("jdtls", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
    pattern = { "java" },
    callback = function()
        require "jdtls".start_or_attach(config)
    end,
    group = jdtls_group,
})

@mattfbacon
Copy link
Author

mattfbacon commented Jan 9, 2024

Interesting, that makes sense. Does the directory have to be unique per project? Nevermind, obviously not because that config is global.

@leana8959
Copy link

@mattfbacon I think it has to be unique per project, at least for neovim. I forgot where I got this idea from, but check this out mfussenegger/nvim-jdtls#459 (comment)
I've only seen configs where people use the current directory as a subdirectory in the global data directory, which makes it unique per project.

@testforstephen
Copy link
Contributor

We also noticed the error assertion failed: Marker property value is too long seems to occur more frequently with gradle-managed android projects when opening it with vscode-java. This might be due to some specific android settings. Appreciate if anyone could share some android projects that can reproduce this issue.

@rgrunber rgrunber added this to the End March 2024 milestone Apr 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants