oracle/graal · error · GraalError

Duplicate option names for %s.% and %s.%s

Error message

Duplicate option names for %s.% and %s.%s

What it means

Error "Duplicate option names for %s.% and %s.%s" thrown in oracle/graal.

Source

Thrown at compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalFeature.java:243

                GraalError.guarantee(options.contains(option), "All options must have been discovered during static analysis: %s", option);
            } else {
                options.add(option);
            }
        }

        void afterAnalysis(AfterAnalysisAccess access) {
            sealed = true;
            Map<String, String> modules = libgraalLoader.getClassModuleMap();
            for (OptionKey<?> option : options) {
                OptionDescriptor descriptor = option.getDescriptor();
                if (descriptor != null && descriptor.getContainer().optionsAreDiscoverable()) {
                    GraalError.guarantee(access.isReachable(option.getClass()), "%s", option.getClass());
                    GraalError.guarantee(access.isReachable(descriptor.getClass()), "%s", descriptor.getClass());

                    String name = option.getName();
                    OptionDescriptor conflict = OptionsParser.libgraalOptions.descriptors().put(name, descriptor);
                    if (conflict != null) {
                        throw new GraalError("Duplicate option names for %s.% and %s.%s",
                                        descriptor.getDeclaringClass().getName(),
                                        descriptor.getFieldName(),
                                        conflict.getDeclaringClass().getName(),
                                        conflict.getFieldName());
                    }

                    String module = modules.get(descriptor.getDeclaringClass().getName());
                    if (module.contains("enterprise")) {
                        OptionsParser.libgraalOptions.enterpriseOptions().add(name);
                    }
                }
            }
            OptionDescriptor.sealHelpStrings();
        }
    }

    /**
     * Transformer for {@code Fields.offsets} and {@code Edges.iterationMask} which need to be

View on GitHub (pinned to a66e9ccd1d)

Solutions

  1. Fix the condition reported by the error: Duplicate option names for {}.% and {}.{}
  2. Check the throwing call site and ensure its documented preconditions (argument values, types, environment, or configuration) are satisfied before the call.

Example fix

Validate inputs and environment so that the failing condition does not occur: Duplicate option names for {}.% and {}.{}

When it happens

Trigger: Thrown at compiler/src/jdk.graal.compiler.libgraal/src/jdk/graal/compiler/libgraal/LibGraalFeature.java:243 when the library encounters an invalid state.

Common situations: Occurs when a caller violates the contract guarded by this check: Duplicate option names for {}.% and {}.{}


AI-assisted analysis of oracle/graal@a66e9ccd1d (2026-08-14). Data as JSON: /api/errors/e25de3579e43b426. Report an issue: GitHub.