redhat-developer / redhat-developer/vscode-java
[NO SOLUTION WORKED] Language Support for Java server crashed 5 times in the last 3 minutes
还没有人认领这个 Issue。
- 主要语言
- TypeScript
- 星标
- 2.3k
- 派生
- 547
- 平均合并
- 20 小时 1 分钟
- 30 天内合并 PR
- 11
描述
I have tried all the suggested solutions in previous threads - clearing java language workspace, reinstalling the extension pack, I didn't have vs-code lombok installed, so I actually went forward and installed it, only to uninstall it later and follow the steps referenced below (to restore java.jdt.ls.vmargs to its default value manually):
The problem is vscode-lombok adds a path to the lombok java agent in java.jdt.ls.vmargs, in the user settings.json. When you uninstall vscode-lombok, it doesn't clean up java.jdt.ls.vmargs, so that still references the lombok jar, which likely no longer exists:
message: 'Starting Java server with: /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -javaagent:/Users/zhh/.vscode/extensions/gabrielbb.vscode-lombok-1.0.1/server/lombok.jar -noverify -jar /home/zhh/.vscode-server/extensions/redhat.java-0.82.0/server/plugins/org.eclipse.equinox.launcher_1.6.300.v20210813-1054.jar -configuration /home/zhh/.vscode-server/data/User/globalStorage/redhat.java/0.82.0/config_ss_linux -data /home/zhh/.vscode-server/data/User/workspaceStorage/9a2f2697641d2d0e6d54bc445822b663/redhat.java/ss_ws',
The language server then fails to start. See
message: 'Error opening zip file or JAR manifest missing : /Users/zhh/.vscode/extensions/gabrielbb.vscode-lombok-1.0.1/server/lombok.jar\n',
So, after uninstalling vscode-lombok, one needs to manually remove the lombok java agent from the java.jdt.ls.vmargs preference.
Originally posted by @fbricon in https://github.com/redhat-developer/vscode-java/issues/305#issuecomment-945083500
However, even after all this I am still getting the same error "Language Server restarted more than 5 times in the last 3 min. Not restarting again".
Here are the logs for your reference:
Notable errors/exceptions: Unable to load IDecompiler class for jarFileContentProvider
BadLocationException\n
{
message: 'Starting Java server with: c:\Users\user\.vscode\extensions\redhat.java-1.3.0\jre\17.0.1-win32-x86_64\bin\java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.fs=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Djava.import.generatesMetadataFilesAtProjectRoot=false -Dfile.encoding=utf8 -DwatchParentProcess=false -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:\Users\user\AppData\Roaming\Code\User\workspaceStorage\eec4092057407e1a5092d8492648964e\redhat.java -jar c:\Users\user\.vscode\extensions\redhat.java-1.3.0\server\plugins\org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar -configuration c:\Users\user\AppData\Roaming\Code\User\globalStorage\redhat.java\1.3.0\config_win -data c:\Users\user\AppData\Roaming\Code\User\workspaceStorage\eec4092057407e1a5092d8492648964e\redhat.java\jdt_ws',
level: 'info',
timestamp: '2022-02-24 09:05:17.077'
}
{
message: '[Error - 9:10:26 am] 24-Feb-2022, 9:10:26 am Unable to load IDecompiler class for jarFileContentProvider',
level: 'info',
timestamp: '2022-02-24 09:10:26.576'
}
{
message: '[Error - 9:16:10 am] 24-Feb-2022, 9:16:10 am BadLocationException\n' +
'null\n' +
'org.eclipse.jface.text.BadLocationException\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.fail(TreeLineTracker.java:1054)\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.lineByOffset(TreeLineTracker.java:268)\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.getLineNumberOfOffset(TreeLineTracker.java:1122)\r\n' +
'\tat org.eclipse.jface.text.AbstractLineTracker.getLineNumberOfOffset(AbstractLineTracker.java:155)\r\n' +
'\tat org.eclipse.jface.text.AbstractDocument.getLineOfOffset(AbstractDocument.java:872)\r\n' +
'\tat org.eclipse.core.internal.filebuffers.SynchronizableDocument.getLineOfOffset(SynchronizableDocument.java:334)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JsonRpcHelpers.toLine(JsonRpcHelpers.java:156)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JsonRpcHelpers.toLine(JsonRpcHelpers.java:101)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toRange(JDTUtils.java:858)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toLocation(JDTUtils.java:757)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toLocation(JDTUtils.java:703)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.getRange(DocumentSymbolHandler.java:205)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.toDocumentSymbol(DocumentSymbolHandler.java:172)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.lambda$2(DocumentSymbolHandler.java:147)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)\r\n' +
'\tat java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.getHierarchicalOutline(DocumentSymbolHandler.java:147)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.documentSymbol(DocumentSymbolHandler.java:80)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$14(JDTLanguageServer.java:636)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)\r\n' +
'\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)\r\n',
level: 'info',
timestamp: '2022-02-24 09:16:10.461'
}
{
message: '[Error - 9:16:10 am] 24-Feb-2022, 9:16:10 am BadLocationException\n' +
'null\n' +
'org.eclipse.jface.text.BadLocationException\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.fail(TreeLineTracker.java:1054)\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.lineByOffset(TreeLineTracker.java:268)\r\n' +
'\tat org.eclipse.jface.text.TreeLineTracker.getLineNumberOfOffset(TreeLineTracker.java:1122)\r\n' +
'\tat org.eclipse.jface.text.AbstractLineTracker.getLineNumberOfOffset(AbstractLineTracker.java:155)\r\n' +
'\tat org.eclipse.jface.text.AbstractDocument.getLineOfOffset(AbstractDocument.java:872)\r\n' +
'\tat org.eclipse.core.internal.filebuffers.SynchronizableDocument.getLineOfOffset(SynchronizableDocument.java:334)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JsonRpcHelpers.toLine(JsonRpcHelpers.java:156)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JsonRpcHelpers.toLine(JsonRpcHelpers.java:101)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toRange(JDTUtils.java:858)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toLocation(JDTUtils.java:757)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.JDTUtils.toLocation(JDTUtils.java:703)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.getRange(DocumentSymbolHandler.java:205)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.toDocumentSymbol(DocumentSymbolHandler.java:172)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.lambda$4(DocumentSymbolHandler.java:188)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)\r\n' +
'\tat java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.toDocumentSymbol(DocumentSymbolHandler.java:190)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.lambda$2(DocumentSymbolHandler.java:147)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)\r\n' +
'\tat java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)\r\n' +
'\tat java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.getHierarchicalOutline(DocumentSymbolHandler.java:147)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler.documentSymbol(DocumentSymbolHandler.java:80)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$14(JDTLanguageServer.java:636)\r\n' +
'\tat org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)\r\n' +
'\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)\r\n' +
'\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)\r\n',
level: 'info',
timestamp: '2022-02-24 09:16:10.469'
}
{
message: "Failed to provide hover command Error: The request (id: 1436, method: 'java/findLinks') has been cancelled",
level: 'error',
timestamp: '2022-02-24 09:18:49.084'
}
{
message: 'The Language Support for Java server crashed and will restart.',
level: 'error',
timestamp: '2022-02-24 09:21:33.702'
}
{
message: '[Info - 9:21:33 am] Connection to server got closed. Server will restart.',
level: 'info',
timestamp: '2022-02-24 09:21:33.703'
}
{
message: 'The Language Support for Java server crashed and will restart.',
level: 'error',
timestamp: '2022-02-24 09:21:36.007'
}
{
message: '[Info - 9:21:36 am] Connection to server got closed. Server will restart.',
level: 'info',
timestamp: '2022-02-24 09:21:36.008'
}
{
message: 'The Language Support for Java server crashed and will restart.',
level: 'error',
timestamp: '2022-02-24 09:21:36.560'
}
{
message: '[Info - 9:21:36 am] Connection to server got closed. Server will restart.',
level: 'info',
timestamp: '2022-02-24 09:21:36.561'
}
{
message: 'The Language Support for Java server crashed and will restart.',
level: 'error',
timestamp: '2022-02-24 09:21:36.600'
}
{
message: '[Info - 9:21:36 am] Connection to server got closed. Server will restart.',
level: 'info',
timestamp: '2022-02-24 09:21:36.600'
}
{
message: 'The Language Support for Java server crashed 5 times in the last 3 minutes. The server will not be restarted.',
level: 'error',
timestamp: '2022-02-24 09:21:36.629'
}
{
message: '[Error - 9:21:36 am] Connection to server got closed. Server will not be restarted.',
level: 'info',
timestamp: '2022-02-24 09:21:36.630'
}
Thanks for your support,
buddywhitman
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先使用提供的启动日志复现 Java language server 反复重启的问题,然后在 JDT language server 中跟踪报告的 Unable to load IDecompiler 和 BadLocationException 路径。完成的标准是确定崩溃原因,并验证服务器在所报告的设置中不再反复重启。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java, typescript, vscode
- 领域
- devtools
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100