{"record":{"id":"d9b6e2743a39a6a1","repo":"projectlombok/lombok","slug":"legal-values-for-s-are-s-or-s","errorCode":null,"errorMessage":"Legal values for '%s' are '%s', or '%s'.","messagePattern":"Legal values for '(.+?)' are '(.+?)', or '(.+?)'\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/delombok/lombok/delombok/FormatPreferences.java","lineNumber":98,"sourceCode":"\t\t\n\t\tthis.indent = indent;\n\t\tthis.filledEmpties = filledEmpties;\n\t\t\n\t\tthis.generateFinalParams = unrollBoolean(preferences, \"finalParams\", \"generate\", \"skip\", true);\n\t\tthis.generateConstructorProperties = unrollBoolean(preferences, \"constructorProperties\", \"generate\", \"skip\", true);\n\t\tthis.generateSuppressWarnings = unrollBoolean(preferences, \"suppressWarnings\", \"generate\", \"skip\", true);\n\t\tthis.generateGenerated = unrollBoolean(preferences, \"generated\", \"generate\", \"skip\", true);\n\t\tthis.danceAroundIdeChecks = unrollBoolean(preferences, \"danceAroundIdeChecks\", \"generate\", \"skip\", true);\n\t\tthis.generateDelombokComment = unrollBoolean(preferences, \"generateDelombokComment\", \"generate\", \"skip\", true);\n\t\tthis.javaLangAsFqn = unrollBoolean(preferences, \"javaLangAsFQN\", \"generate\", \"skip\", true);\n\t}\n\t\n\tprivate static boolean unrollBoolean(Map<String, String> preferences, String name, String trueStr, String falseStr, boolean defaultVal) {\n\t\tString v_ = preferences.get(name.toLowerCase());\n\t\tif (v_ == null) return defaultVal;\n\t\tif (trueStr.equalsIgnoreCase(v_)) return true;\n\t\tif (falseStr.equalsIgnoreCase(v_)) return false;\n\t\tthrow new IllegalArgumentException(\"Legal values for '\" + name + \"' are '\" + trueStr + \"', or '\" + falseStr + \"'.\");\n\t}\n\t\n\tpublic static Map<String, String> getKeysAndDescriptions() {\n\t\treturn KEYS;\n\t}\n\t\n\t/** If true, empty lines should still be appropriately indented. If false, empty lines should be completely blank. */\n\tpublic boolean fillEmpties() {\n\t\treturn filledEmpties == null ? false : filledEmpties;\n\t}\n\t\n\tpublic String indent() {\n\t\treturn indent == null ? \"\\t\" : indent;\n\t}\n\t\n\tpublic boolean generateSuppressWarnings() {\n\t\treturn generateSuppressWarnings;\n\t}","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/projectlombok/lombok/blob/6d6a3e9fec0a9555702561fbeb8eac836575116e/src/delombok/lombok/delombok/FormatPreferences.java#L80-L116","documentation":"`unrollBoolean` validates boolean format options in FormatPreferences. Each option accepts only its designated true-string, false-string, or absence (default). Any other value throws IllegalArgumentException naming the option and its two legal values.","triggerScenarios":"Supplying a value for a boolean format key (e.g. `suppressWarnings`, `generated`, `finalParams`) that is neither its trueStr nor falseStr, e.g. `getters.final=true` or `skip:maybe`. Fires inside `setFormatPreferences` for every option registered via unrollBoolean.","commonSituations":"Using generic 'true'/'false' where the option expects 'generate'/'skip' (or vice versa); typos like 'genrate'; tooling that blindly serializes booleans into format options.","solutions":["Read the message: set the named option to exactly the quoted true value or the quoted false value","Remove the key to get the default value","Run `java -jar lombok.jar --format-help` to see legal values per option"],"exampleFix":"// before\nformatOptions.add(\"finalParams:yes\");\n// after\nformatOptions.add(\"finalParams:generate\"); // or \"skip\"","handlingStrategy":"validation","validationCode":"if (v != null && !trueStr.equalsIgnoreCase(v) && !falseStr.equalsIgnoreCase(v))\n    throw new IllegalArgumentException(name + \" must be \" + trueStr + \" or \" + falseStr);","typeGuard":null,"tryCatchPattern":"try { delombok.setFormatPreferences(opts); } catch (IllegalArgumentException e) { /* set option to one of the two legal values quoted in the message */ throw e; }","preventionTips":["Use the exact true/false words quoted in the error message","Do not assume generic true/false is accepted","Verify options with --format-help"],"tags":["configuration","format-options","boolean","illegal-argument"],"backgroundTag":"invalid-enum-value","analyzedSha":"6d6a3e9fec0a9555702561fbeb8eac836575116e","analyzedAt":"2026-09-07T23:18:01.841Z","contentChangedAt":"2026-09-07T23:18:01.841Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}