On Fri, 18 Sep 2026 14:44:12 GMT, Robert Toyonaga <[email protected]> wrote:
>> ### Summary >> >> When specifying `-XX:UnlockDiagnosticVMOptions` without the necessary +/-, >> the following error is produced: >> >> $ java -XX:UnlockDiagnosticVMOptions -m jdk.httpserver >> Error: VM option 'UnlockDiagnosticVMOptions' is diagnostic and must be >> enabled via -XX:+UnlockDiagnosticVMOptions. >> >> >> Similarly with `-XX:UnlockExperimentalVMOptions`: >> >> $ java -XX:UnlockExperimentalVMOptions -m jdk.httpserver >> Error: VM option 'UnlockExperimentalVMOptions' is experimental and must be >> enabled via -XX:+UnlockExperimentalVMOptions. >> >> >> This recursive complaint about using the unlocker to unlock the unlocker is >> misleading and probably confusing for users. >> >> ### Root cause >> The problem is that `UnlockDiagnosticVMOptions` is **itself** a >> _diagnostic_ option. And `UnlockExperimentalVMOptions` is **itself** an >> _experimental_ option. >> >> `Arguments::process_argument` calls `parse_argument` which notices >> `UnlockDiagnosticVMOptions`/`UnlockExperimentalVMOptions` is missing +/- so >> leaves the option **unset**. Since the unlocker option is unset, and the >> unlocker option is itself diagnostic/experiemental, the "must be enabled" >> error is thrown because it hasn't yet been unlocked. >> >> UnlockDiagnosticVMOptions defaults to true in debug, so the problem only >> manifests in release builds. >> UnlockExperimentalVMOptions always defaults to false, so the problem >> manifests in all builds. >> >> >> ### Solution >> The solution is to treat `UnlockDiagnosticVMOptions` and >> `UnlockExperimentalVMOptions` as always unlocked. The existing Hotspot code >> already essentially does this, but this PR formalizes it in >> `JVMFlag::is_unlocked()`. As an added benefit, this allows for some >> simplification in other places too where we check the status of flags. >> >> >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Robert Toyonaga has updated the pull request incrementally with one > additional commit since the last revision: > > fix bug and add test This looks good. Thanks to David for catching the typo. ------------- Marked as reviewed by sspitsyn (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/32910#pullrequestreview-5252941923
