{"record":{"id":"8fc0a91981bf8551","repo":"oracle/graal","slug":"s-does-not-support-meta-inf-libgraal-java-home-pr","errorCode":null,"errorMessage":"%s does not support META-INF/libgraal.java.home protocol (see javadoc of HostedLibGraalClassLoader)","messagePattern":"(.+?) does not support META-INF/libgraal\\.java\\.home protocol \\(see javadoc of HostedLibGraalClassLoader\\)","errorType":"panic","errorClass":"GraalError","httpStatus":null,"severity":"error","filePath":"compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalFeature.java","lineNumber":131,"sourceCode":"            throw new GraalError(ex);\n        }\n    }\n\n    public static final class IsEnabled implements BooleanSupplier {\n        @Override\n        public boolean getAsBoolean() {\n            Class<LibGraalFeature> clazz = LibGraalFeature.class;\n            return ImageSingletons.contains(clazz);\n        }\n    }\n\n    /**\n     * See javadoc for {@code jdk.graal.compiler.libgraal.loader.HostedLibGraalClassLoader}.\n     */\n    private static Path readLibgraalJavaHome(ClassLoader cl) {\n        try (InputStream in = cl.getResourceAsStream(\"META-INF/libgraal.java.home\")) {\n            if (in == null) {\n                throw new GraalError(cl.getClass().getName() + \" does not support META-INF/libgraal.java.home protocol (see javadoc of HostedLibGraalClassLoader)\");\n            }\n            return Path.of(new String(in.readAllBytes()));\n        } catch (IOException e) { // Parfait_ALLOW impossible-redundant-condition (PARSEC-7191)\n            throw new GraalError(e);\n        }\n    }\n\n    private final LibGraalLoader libgraalLoader = (LibGraalLoader) getClass().getClassLoader();\n    private final Path libgraalJavaHome = readLibgraalJavaHome(getClass().getClassLoader());\n\n    private BeforeAnalysisAccess beforeAnalysisAccess;\n    private BeforeCompilationAccess beforeCompilationAccess;\n    private OptionCollector optionCollector;\n\n    @Override\n    public void onRegistration(OnRegistrationAccess access) {\n        ImageSingletons.add(LibGraalFeature.class, this);\n    }","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/oracle/graal/blob/a66e9ccd1d7bf2552883939aa0788dfd0e294aab/compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalFeature.java#L113-L149","documentation":"Error \"%s does not support META-INF/libgraal.java.home protocol (see javadoc of HostedLibGraalClassLoader)\" thrown in oracle/graal.","triggerScenarios":"Thrown at compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalFeature.java:131 when the library encounters an invalid state.","commonSituations":"Occurs when a caller violates the contract guarded by this check: {} does not support META-INF/libgraal.java.home protocol","solutions":["Fix the condition reported by the error: {} does not support META-INF/libgraal.java.home protocol","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: {} does not support META-INF/libgraal.java.home protocol","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-15T17:31:12.345Z"}