{"record":{"id":"2f62069b735f17c3","repo":"oracle/graal","slug":"reading-jni-config-in-s-dumped-by-command-s-n-s","errorCode":null,"errorMessage":"Reading JNI config in %s dumped by command: %s%n%s","messagePattern":"Reading JNI config in (.+?) dumped by command: (.+?)%n(.+?)","errorType":"panic","errorClass":"GraalError","httpStatus":null,"severity":"error","filePath":"compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/GetJNIConfig.java","lineNumber":114,"sourceCode":"\n        String nl = System.lineSeparator();\n        String out = new BufferedReader(new InputStreamReader(p.getInputStream())).lines().collect(Collectors.joining(nl));\n\n        int exitValue;\n        try {\n            exitValue = p.waitFor();\n        } catch (InterruptedException e) {\n            throw new GraalError(e, \"Interrupted waiting for command: %s%n%s\", quotedCommand, out);\n        }\n        if (exitValue != 0) {\n            throw new GraalError(\"Command finished with exit value %d: %s%n%s\", exitValue, quotedCommand, out);\n        }\n        try {\n            lines = Files.readAllLines(configFilePath);\n        } catch (IOException e) {\n            Path cfp = configFilePath;\n            configFilePath = null;\n            throw new GraalError(\"Reading JNI config in %s dumped by command: %s%n%s\", cfp, quotedCommand, out);\n        }\n    }\n\n    static Path getJavaExe(Path javaHome) {\n        boolean isWindows = GraalServices.getSavedProperty(\"os.name\").contains(\"Windows\");\n        Path javaExe = javaHome.resolve(Path.of(\"bin\", isWindows ? \"java.exe\" : \"java\"));\n        if (!Files.isExecutable(javaExe)) {\n            throw new GraalError(\"Java launcher %s does not exist or is not executable\", javaExe);\n        }\n        return javaExe;\n    }\n\n    @Override\n    public void close() {\n        if (configFilePath != null && Files.exists(configFilePath)) {\n            try {\n                Files.delete(configFilePath);\n                configFilePath = null;","sourceCodeStart":96,"sourceCodeEnd":132,"githubUrl":"https://github.com/oracle/graal/blob/a66e9ccd1d7bf2552883939aa0788dfd0e294aab/compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/GetJNIConfig.java#L96-L132","documentation":"Error \"Reading JNI config in %s dumped by command: %s%n%s\" thrown in oracle/graal.","triggerScenarios":"Thrown at compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/GetJNIConfig.java:114 when the library encounters an invalid state.","commonSituations":"Occurs when a caller violates the contract guarded by this check: Reading JNI config in {} dumped by command: {} {}","solutions":["Fix the condition reported by the error: Reading JNI config in {} dumped by command: {} {}","Check the throwing call site and ensure its documented preconditions (argument values, types, environment, or configuration) are satisfied before the call."],"exampleFix":"Validate inputs and environment so that the failing condition does not occur: Reading JNI config in {} dumped by command: {} {}","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a66e9ccd1d7bf2552883939aa0788dfd0e294aab","analyzedAt":"2026-08-14T13:58:47.161Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}