redhat-developer / redhat-developer/vscode-java

[NO SOLUTION WORKED] Language Support for Java server crashed 5 times in the last 3 minutes

Open
#2,332 18 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

extension-start ls-error/crash
Dominant language
TypeScript
Stars
2.3k
Forks
546
Avg merge
20h 1m
Merged PRs (30d)
11

Description

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the repeated Java language-server restart with the provided startup logs, then trace the reported Unable to load IDecompiler and BadLocationException paths through the JDT language server. Done means identifying the cause of the crash and verifying that the server no longer restarts repeatedly in the reported setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, typescript, vscode
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.