Skip to content

Role "slurm_rest_api" fails: OpenAPI requires at least Java 1.11 #64

@ghtyrant

Description

@ghtyrant

The role slurm_rest_api installs OpenAPI, which fails on a blank OracleLinux 8.10 installation with the following error:

    Error: Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/openapitools/codegen/OpenAPIGenerator
has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Jav
a Runtime only recognizes class file versions up to 52.0
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
            at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:621)

        at /home/opc/.nvm/versions/node/v22.18.0/lib/node_modules/@openapitools/openapi-generator-cli/main.js:2:4
8841
        at ChildProcess.exithandler (node:child_process:424:5)
        at ChildProcess.emit (node:events:518:28)
        at maybeClose (node:internal/child_process:1101:16)
        at Socket.<anonymous> (node:internal/child_process:456:11)
        at Socket.emit (node:events:518:28)
        at Pipe.<anonymous> (node:net:346:12)

    Node.js v22.18.0
  stderr_lines: <omitted>
  stdout: |2-

    added 173 packages in 5s

    46 packages are looking for funding
      run `npm fund` for details
    Download 7.14.0 ...
    Downloaded 7.14.0
    Did set selected version to 7.14.0

Oracle Linux 8.10 ships with JRE 1.8 per default, which is class file version 52. The error indicates it requires version 55, which is JRE 1.11.

Installing java-21-openjdk and setting it as default java using alternatives fixes this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions