{"record":{"id":"babb2bde3e169c55","repo":"oracle/graal","slug":"the-s-property-is-no-longer-supported","errorCode":null,"errorMessage":"The '%s' property is no longer supported.","messagePattern":"The '(.+?)' property is no longer supported\\.","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/HotSpotGraalOptionValues.java","lineNumber":120,"sourceCode":"            Map<String, String> savedProps = GraalServices.getSavedProperties();\n\n            EconomicMap<String, String> compilerOptionSettings = EconomicMap.create();\n            EconomicMap<String, String> vmOptionSettings = EconomicMap.create();\n\n            for (Map.Entry<String, String> e : savedProps.entrySet()) {\n                String name = e.getKey();\n                if (name.startsWith(LEGACY_GRAAL_OPTION_PROPERTY_PREFIX)) {\n                    // Convert legacy name to new name\n                    String baseName = name.substring(LEGACY_GRAAL_OPTION_PROPERTY_PREFIX.length());\n                    name = GRAAL_OPTION_PROPERTY_PREFIX + baseName;\n                }\n                if (name.startsWith(GRAAL_OPTION_PROPERTY_PREFIX)) {\n                    if (name.startsWith(LIBGRAAL_VM_OPTION_PROPERTY_PREFIX)) {\n                        vmOptionSettings.put(stripPrefix(name, LIBGRAAL_VM_OPTION_PROPERTY_PREFIX), e.getValue());\n                    } else if (name.equals(UNSUPPORTED_GRAAL_OPTIONS_FILE_PROPERTY_NAME)) {\n                        String msg = String.format(\"The '%s' property is no longer supported.\",\n                                        UNSUPPORTED_GRAAL_OPTIONS_FILE_PROPERTY_NAME);\n                        throw new IllegalArgumentException(msg);\n                    } else {\n                        String value = e.getValue();\n                        compilerOptionSettings.put(stripPrefix(name, GRAAL_OPTION_PROPERTY_PREFIX), value);\n                    }\n                }\n            }\n\n            if (!vmOptionSettings.isEmpty()) {\n                LibGraalSupport libgraal = LibGraalSupport.INSTANCE;\n                if (libgraal != null) {\n                    libgraal.notifyOptions(vmOptionSettings);\n                } else {\n                    System.err.printf(\"WARNING: Ignoring the following libgraal VM option(s) while executing jargraal: %s%n\", vmOptionSettings);\n                }\n            }\n            OptionsParser.parseOptions(compilerOptionSettings, compilerOptionValues, descriptors);\n            return compilerOptionValues;\n        }","sourceCodeStart":102,"sourceCodeEnd":138,"githubUrl":"https://github.com/oracle/graal/blob/a66e9ccd1d7bf2552883939aa0788dfd0e294aab/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/HotSpotGraalOptionValues.java#L102-L138","documentation":"While scanning system properties for -Dgraal.* overrides, HotSpotGraalOptionValues recognizes the legacy options-file property name (UNSUPPORTED_GRAAL_OPTIONS_FILE_PROPERTY_NAME) and throws IllegalArgumentException('The ... property is no longer supported.') instead of silently ignoring it. The file-based Graal options mechanism was removed, and this guard produces a clear failure at options bootstrap.","triggerScenarios":"Starting the JVM with the removed property still set — e.g. -Dgraal.options.file=... (the exact legacy name) — while any jdk.graal.compiler property handling runs; the throw happens during parseOptions of the option values, i.e. at first Graal initialization.","commonSituations":"Old scripts/Dockerfiles/benchmark harnesses (e.g. dacapo-style wrappers) carrying the property forward after a GraalVM upgrade; documentation that still recommends the options file; CI defaults from an era when graal.options.file was valid.","solutions":["Delete the property from the command line, JAVA_OPTS, and env-derived flags; put options into -Dgraal.<Option>=<value> properties directly","Move the removed file's contents into the command line or a launcher config supported by the current version"],"exampleFix":"# before\njava -Dgraal.options.file=/etc/graal.opts MyApp\n\n# after\njava -Dgraal.CompilationBailoutAction=1 -Dgraal.TraceInlining=true MyApp","handlingStrategy":"validation","validationCode":"if (System.getProperty(UNSUPPORTED_GRAAL_OPTIONS_FILE_PROP) != null) { /* fail fast with a clear message before launching Graal */ }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Grep scripts/images for removed properties after each GraalVM upgrade","Migrate options-file contents into -Dgraal.<Option>=value flags","Maintain a 'removed options' checklist for your launch tooling"],"tags":["graal-compiler","options","migration","startup"],"backgroundTag":null,"analyzedSha":"a66e9ccd1d7bf2552883939aa0788dfd0e294aab","analyzedAt":"2026-08-14T13:58:47.161Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}