java.lang.NoSuchMethodError: 'boolean org.eclipse.xtext.xbase.lib.ArrayExtensions.contains(java.lang.Object[], java.lang.Object)'

23 views Asked by At

I have xtext language server project configured to build with maven. I want to connect the VS Code language client to the server via socket for debugging. In my xtext.ide/pom.xml, I have made the following change

<mainClass>org.eclipse.xtext.ide.server.SocketServerLauncher</mainClass>

and now I can run the jar file on command line

java -jar xtext.ide-1.0.0-SNAPSHOT-ls.jar -port 5008 -host 0.0.0.0
0    [main] INFO  ext.ide.server.SocketServerLauncher  - Started server socket at /0.0.0.0:5008

And in my VS Code extension.ts, I have the following

 var client: LanguageClient;

    let connectionInfo = {
      port: 5008,
      host: "0.0.0.0"
    };

    let serverInfo = () => {
      // Connect to language server via socket
      let socket = net.connect(connectionInfo);
      let result: StreamInfo = {
          writer: socket,
          reader: socket
      };
      return Promise.resolve(result);
  };

Once I start the extension, my server crashes with the error

java.lang.NoSuchMethodError: 'boolean org.eclipse.xtext.xbase.lib.ArrayExtensions.contains(java.lang.Object[], java.lang.Object)'
    at org.eclipse.xtext.ide.server.SocketServerLauncher.getTrace(SocketServerLauncher.java:85)
    at org.eclipse.xtext.ide.server.SocketServerLauncher.launch(SocketServerLauncher.java:64)
    at org.eclipse.xtext.ide.server.SocketServerLauncher.main(SocketServerLauncher.java:52)

But seems that the version of org.eclipse.xtext.xbase.lib.ArrayExtensions I have on my classpath is correct:

enter image description here

(It was introduced here which got released in 2.20

Edit 1: I noticed that the version in xtext/META-INF/MANIFEST.MF was not as expected:

Require-Bundle: org.eclipse.xtext.xbase.lib;bundle-version="2.14.0"

I now updated that to 2.25.0, but the error is still the same.

0

There are 0 answers