-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Open
Labels
C-bugCategory: This is a bugCategory: This is a bug
Description
Summary
I'm trying to debug Java in Helix by:
- writing a plugin that sends
vscode.java.startDebugSessioncommand to LSP according to java-debug - starting the app with JDWP debugger agent enabled:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -jar target/gsws-ch7-0.0.1-SNAPSHOT.jar- Adding the following config:
[[language]]
name = "java"
language-servers = [ "jdtls" ]
indent = { tab-width = 4, unit = " " }
[language-server.jdtls]
command = "jdtls-wrapper"
args = ["--jvm-arg=-javaagent:/Users/quantong/.lombok/lombok.jar"]
[language-server.jdtls.config]
java.inlayHints.parameterNames.enabled = "all"
extendedClientCapabilities.classFileContentsSupport = true
bundles = [ "/Users/quantong/.m2/repository/com/microsoft/java/com.microsoft.java.debug.plugin/0.53.2/com.microsoft.java.debug.plugin-0.53.2.jar" ]
[language.debugger]
name = "java-debug"
transport = "stdio"
[[language.debugger.templates]]
name = "connect-to-jdtls-dap"
request = "attach"
args = { hostName = "127.0.0.1", port = "5005" }- Connecting to the debug adapter:
:debug-remote 127.0.0.1:12345
However, at the end, Helix sends a configurationDone command with null arguments:
2025-08-30T09:37:00.065 helix_dap::transport [INFO] [1v1] -> DAP {
"type":"request",
"seq":3,
"command":"configurationDone",
"arguments":null
}
this causes an error on JDTLS side:
2025-08-30T09:37:00.066 helix_lsp::transport [INFO] jdtls <- {
"jsonrpc":"2.0",
"method":"window/logMessage",
"params":{
"type":1,
"message":""
Aug 30, 2025, 9:37:00 AM Error parsing message: com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull; at path $.arguments
Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull; at path $.arguments
com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonObject but was com.google.gson.JsonNull; at path $.arguments
According to the DAP spec, configurationDone either:
- should omit the
argumentsfield, or - include it as an empty object
but it should not be null.
Reproduction Steps
I tried this:
hx
I expected this to happen:
Instead, this happened:
Helix log
~/.cache/helix/helix.log
please provide a copy of `~/.cache/helix/helix.log` here if possible, you may need to redact some of the lines
Platform
macOS
Terminal Emulator
wezterm 20250114-162918-c2b3693f
Installation Method
source
Helix Version
helix 25.07.1 (30125e99)
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bugCategory: This is a bug