java-language-server
java-language-server copied to clipboard
Server crashed
I am using this server installed by AUR via a client named eglot in Emacs.
As you can see from the AUR, Java that this server runs on is packed in the package, and its version is shown as follows:
openjdk 13.0.2 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode)
Then, I tried to launch the server via eglot, and eglot send following messages to this server resulting in an exception thown:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
(:processId 1464 :rootPath "/home/xxx/proj/soot" :rootUri "file:///home/mark/xxx/soot" :initializationOptions nil :capabilities
(:workspace
(:applyEdit t :executeCommand
(:dynamicRegistration :json-false)
:workspaceEdit
(:documentChanges :json-false)
:didChangeWatchedFiles
(:dynamicRegistration t)
:symbol
(:dynamicRegistration :json-false)
:configuration t)
:textDocument
(:synchronization
(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
:completion
(:dynamicRegistration :json-false :completionItem
(:snippetSupport t)
:contextSupport t)
:hover
(:dynamicRegistration :json-false :contentFormat
["markdown" "plaintext"])
:signatureHelp
(:dynamicRegistration :json-false :signatureInformation
(:parameterInformation
(:labelOffsetSupport t)))
:references
(:dynamicRegistration :json-false)
:definition
(:dynamicRegistration :json-false)
:declaration
(:dynamicRegistration :json-false)
:implementation
(:dynamicRegistration :json-false)
:typeDefinition
(:dynamicRegistration :json-false)
:documentSymbol
(:dynamicRegistration :json-false :symbolKind
(:valueSet
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
:documentHighlight
(:dynamicRegistration :json-false)
:codeAction
(:dynamicRegistration :json-false :codeActionLiteralSupport
(:codeActionKind
(:valueSet
["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"])))
:formatting
(:dynamicRegistration :json-false)
:rangeFormatting
(:dynamicRegistration :json-false)
:rename
(:dynamicRegistration :json-false)
:publishDiagnostics
(:relatedInformation :json-false))
:experimental nil)))
The exception:
java.lang.RuntimeException: java.nio.charset.MalformedInputException: Input length = 1
at org.javacs.StringSearch.packageName(StringSearch.java:493)
at org.javacs.FileStore.readInfoFromDisk(FileStore.java:196)
at org.javacs.FileStore$1.visitFile(FileStore.java:76)
at org.javacs.FileStore$1.visitFile(FileStore.java:63)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2803)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2875)
at org.javacs.FileStore.addFiles(FileStore.java:61)
at org.javacs.FileStore.setWorkspaceRoots(FileStore.java:44)
at org.javacs.JavaLanguageServer.initialize(JavaLanguageServer.java:143)
at org.javacs.lsp.LSP.connect(LSP.java:254)
at org.javacs.Main.main(Main.java:30)
Caused by: java.nio.charset.MalformedInputException: Input length = 1
at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:274)
at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:352)
at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
at java.base/java.io.InputStreamReader.read(InputStreamReader.java:185)
at java.base/java.io.BufferedReader.fill(BufferedReader.java:161)
at java.base/java.io.BufferedReader.readLine(BufferedReader.java:326)
at java.base/java.io.BufferedReader.readLine(BufferedReader.java:392)
at org.javacs.StringSearch.packageName(StringSearch.java:484)
... 10 more
Had the same issue.
jsonrpc] D[08:37:10.898] Running language server: /home/gavinok/java-language-server/dist/lang_server_linux.sh
[jsonrpc] e[08:37:10.900] --> initialize[1] {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"processId":2914,"clientInfo":{"name":"Eglot","version":"1.17"},"rootPath":"/home/gavinok/","rootUri":"file:///home/gavinok","initializationOptions":{},"capabilities":{"workspace":{"codeLens":{"refreshSupport":true},"applyEdit":true,"executeCommand":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":false},"configuration":true,"workspaceFolders":true},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false,"completionItem":{"snippetSupport":true,"deprecatedSupport":true,"resolveSupport":{"properties":["documentation","details","additionalTextEdits"]},"tagSupport":{"valueSet":[1]}},"contextSupport":true},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true},"documentationFormat":["markdown","plaintext"],"activeParameterSupport":true}},"references":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true},"declaration":{"dynamicRegistration":false,"linkSupport":true},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"documentSymbol":{"dynamicRegistration":false,"hierarchicalDocumentSymbolSupport":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"documentHighlight":{"dynamicRegistration":false},"codeAction":{"dynamicRegistration":false,"resolveSupport":{"properties":["edit","command"]},"dataSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"isPreferredSupport":true},"formatting":{"dynamicRegistration":false},"rangeFormatting":{"dynamicRegistration":false},"rename":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"relatedInformation":false,"codeDescriptionSupport":false,"tagSupport":{"valueSet":[1,2]}}},"window":{"showDocument":{"support":true},"workDoneProgress":true},"general":{"positionEncodings":["utf-32","utf-8","utf-16"]},"experimental":{}},"workspaceFolders":null}}
[stderr] Error: LinkageError occurred while loading main class org.javacs.Main
[stderr] java.lang.UnsupportedClassVersionError: org/javacs/Main has been compiled by a more recent version of the Java Runtime (class file version 62.0), this version of the Java Runtime only recognizes class file versions up to 55.0
[jsonrpc] D[08:37:11.019] Connection state change: `exited abnormally with code 1
'
for readability here is the json from the initialization
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"processId": 2914,
"clientInfo": {
"name": "Eglot",
"version": "1.17"
},
"rootPath": "/home/gavinok/",
"rootUri": "file:///home/gavinok",
"initializationOptions": {},
"capabilities": {
"workspace": {
"codeLens": {
"refreshSupport": true
},
"applyEdit": true,
"executeCommand": {
"dynamicRegistration": false
},
"workspaceEdit": {
"documentChanges": true
},
"didChangeWatchedFiles": {
"dynamicRegistration": true
},
"symbol": {
"dynamicRegistration": false
},
"configuration": true,
"workspaceFolders": true
},
"textDocument": {
"synchronization": {
"dynamicRegistration": false,
"willSave": true,
"willSaveWaitUntil": true,
"didSave": true
},
"completion": {
"dynamicRegistration": false,
"completionItem": {
"snippetSupport": true,
"deprecatedSupport": true,
"resolveSupport": {
"properties": [
"documentation",
"details",
"additionalTextEdits"
]
},
"tagSupport": {
"valueSet": [
1
]
}
},
"contextSupport": true
},
"hover": {
"dynamicRegistration": false,
"contentFormat": [
"markdown",
"plaintext"
]
},
"signatureHelp": {
"dynamicRegistration": false,
"signatureInformation": {
"parameterInformation": {
"labelOffsetSupport": true
},
"documentationFormat": [
"markdown",
"plaintext"
],
"activeParameterSupport": true
}
},
"references": {
"dynamicRegistration": false
},
"definition": {
"dynamicRegistration": false,
"linkSupport": true
},
"declaration": {
"dynamicRegistration": false,
"linkSupport": true
},
"implementation": {
"dynamicRegistration": false,
"linkSupport": true
},
"typeDefinition": {
"dynamicRegistration": false,
"linkSupport": true
},
"documentSymbol": {
"dynamicRegistration": false,
"hierarchicalDocumentSymbolSupport": true,
"symbolKind": {
"valueSet": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
]
}
},
"documentHighlight": {
"dynamicRegistration": false
},
"codeAction": {
"dynamicRegistration": false,
"resolveSupport": {
"properties": [
"edit",
"command"
]
},
"dataSupport": true,
"codeActionLiteralSupport": {
"codeActionKind": {
"valueSet": [
"quickfix",
"refactor",
"refactor.extract",
"refactor.inline",
"refactor.rewrite",
"source",
"source.organizeImports"
]
}
},
"isPreferredSupport": true
},
"formatting": {
"dynamicRegistration": false
},
"rangeFormatting": {
"dynamicRegistration": false
},
"rename": {
"dynamicRegistration": false
},
"inlayHint": {
"dynamicRegistration": false
},
"publishDiagnostics": {
"relatedInformation": false,
"codeDescriptionSupport": false,
"tagSupport": {
"valueSet": [
1,
2
]
}
}
},
"window": {
"showDocument": {
"support": true
},
"workDoneProgress": true
},
"general": {
"positionEncodings": [
"utf-32",
"utf-8",
"utf-16"
]
},
"experimental": {}
},
"workspaceFolders": null
}
}
I was able to properly start the server when it was opened in a registered workspace
[jsonrpc] e[08:45:01.204] --> initialize[1] {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"processId":2914,"clientInfo":{"name":"Eglot","version":"1.17"},"rootPath":"/home/gavinok/tmp/","rootUri":"file:///home/gavinok/tmp","initializationOptions":{},"capabilities":{"workspace":{"codeLens":{"refreshSupport":true},"applyEdit":true,"executeCommand":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":false},"configuration":true,"workspaceFolders":true},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false,"completionItem":{"snippetSupport":true,"deprecatedSupport":true,"resolveSupport":{"properties":["documentation","details","additionalTextEdits"]},"tagSupport":{"valueSet":[1]}},"contextSupport":true},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true},"documentationFormat":["markdown","plaintext"],"activeParameterSupport":true}},"references":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true},"declaration":{"dynamicRegistration":false,"linkSupport":true},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"documentSymbol":{"dynamicRegistration":false,"hierarchicalDocumentSymbolSupport":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"documentHighlight":{"dynamicRegistration":false},"codeAction":{"dynamicRegistration":false,"resolveSupport":{"properties":["edit","command"]},"dataSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"isPreferredSupport":true},"formatting":{"dynamicRegistration":false},"rangeFormatting":{"dynamicRegistration":false},"rename":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"relatedInformation":false,"codeDescriptionSupport":false,"tagSupport":{"valueSet":[1,2]}}},"window":{"showDocument":{"support":true},"workDoneProgress":true},"general":{"positionEncodings":["utf-32","utf-8","utf-16"]},"experimental":{}},"workspaceFolders":[{"uri":"file:///home/gavinok/tmp","name":"~/tmp/"}]}}
[stderr] 08:45:01.397 INFO LSP$1MessageReader run Placing incoming messages on queue...
[stderr] 08:45:01.397 INFO LSP connect Reading messages from queue...
[jsonrpc] e[08:45:01.591] <-- initialize[1] {"jsonrpc":"2.0","id":1,"result":{"capabilities":{"textDocumentSync":2,"hoverProvider":true,"completionProvider":{"resolveProvider":true,"triggerCharacters":["."]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"referencesProvider":true,"definitionProvider":true,"workspaceSymbolProvider":true,"documentSymbolProvider":true,"documentFormattingProvider":true,"codeLensProvider":{},"foldingRangeProvider":true,"codeActionProvider":true,"renameProvider":{"prepareProvider":true}}}}