java-language-server icon indicating copy to clipboard operation
java-language-server copied to clipboard

Server crashed

Open linux40 opened this issue 5 years ago • 1 comments

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

linux40 avatar Mar 02 '20 02:03 linux40

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}}}}

Gavinok avatar Mar 20 '24 15:03 Gavinok