{"record":{"id":"c5453adceb1f9773","repo":"stanfordnlp/CoreNLP","slug":"not-a-valid-ellipses-style-c5453a","errorCode":null,"errorMessage":"Not a valid ellipses style: ","messagePattern":"Not a valid ellipses style: ","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/edu/stanford/nlp/international/french/process/FrenchLexer.flex","lineNumber":149,"sourceCode":"          normalizeOtherBrackets = val;\n          ellipsisStyle = val ? LexerUtils.EllipsesEnum.ASCII : LexerUtils.EllipsesEnum.ORIGINAL;\n          dashesStyle = val ? LexerUtils.DashesEnum.ASCII : LexerUtils.DashesEnum.ORIGINAL;\n          quoteStyle = val ? LexerUtils.QuotesEnum.ASCII : LexerUtils.QuotesEnum.ORIGINAL;\n        } else if (\"quotes\".equals(key)) {\n          quoteStyle = LexerUtils.QuotesEnum.valueOf(value.toUpperCase(Locale.ROOT));\n        } else if (\"normalizeAmpersandEntity\".equals(key)) {\n          normalizeAmpersandEntity = val;\n        } else if (\"normalizeFractions\".equals(key)) {\n          normalizeFractions = val;\n        } else if (\"normalizeParentheses\".equals(key)) {\n          normalizeParentheses = val;\n        } else if (\"normalizeOtherBrackets\".equals(key)) {\n          normalizeOtherBrackets = val;\n        } else if (\"ellipses\".equals(key)) {\n          try {\n            ellipsisStyle = LexerUtils.EllipsesEnum.valueOf(value.trim().toUpperCase(Locale.ROOT));\n          } catch (IllegalArgumentException iae) {\n            throw new IllegalArgumentException (\"Not a valid ellipses style: \" + value);\n          }\n        } else if (\"dashes\".equals(key)) {\n          try {\n            dashesStyle = LexerUtils.DashesEnum.valueOf(value.trim().toUpperCase(Locale.ROOT));\n          } catch (IllegalArgumentException iae) {\n            throw new IllegalArgumentException (\"Not a valid dashes style: \" + value);\n          }\n        } else if (\"escapeForwardSlashAsterisk\".equals(key)) {\n          escapeForwardSlashAsterisk = val;\n        } else if (\"untokenizable\".equals(key)) {\n          switch (value) {\n            case \"noneDelete\":\n              untokenizable = UntokenizableOptions.NONE_DELETE;\n              break;\n            case \"firstDelete\":\n              untokenizable = UntokenizableOptions.FIRST_DELETE;\n              break;\n            case \"allDelete\":","sourceCodeStart":131,"sourceCodeEnd":167,"githubUrl":"https://github.com/stanfordnlp/CoreNLP/blob/1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a/src/edu/stanford/nlp/international/french/process/FrenchLexer.flex#L131-L167","documentation":"FrenchLexer throws this IllegalArgumentException when the 'ellipses' option is given a value that does not match any constant of LexerUtils.EllipsesEnum. The constructor parses option key/value pairs and uses Enum.valueOf on the uppercased, trimmed value; any unrecognized string fails and is rethrown with this message. It is a configuration validation error, thrown at lexer construction time.","triggerScenarios":"Calling new FrenchLexer(Reader, TokenFactory, Map<String,String>) (or the properties-based constructor) with options map entry key=\"ellipses\" and a value not in EllipsesEnum, e.g. \"dots\", \"...\", or \"three-dots\" (valid values are typically NONE, UNICODE, PTB).","commonSituations":"Typo in a tokenizer options string in a properties file or pipeline configuration; copying options from PTBTokenizer into FrenchLexer where the enum constants differ; case/formatting changes like \"unicode \" with stray whitespace (trim is applied, but hyphenated or misspelled variants still fail).","solutions":["Set the ellipses option to a valid LexerUtils.EllipsesEnum constant name (e.g. \"none\", \"unicode\", \"ptb\"), case-insensitive.","Check LexerUtils.EllipsesEnum in the source for the exact set of accepted values for your CoreNLP version.","Validate the options map before constructing the lexer, mirroring Enum.valueOf(value.trim().toUpperCase(Locale.ROOT)) in a try-catch.","If the value comes from a config file, log or print the offending value; the exception message includes it."],"exampleFix":"// before\nprops.put(\"ellipses\", \"dots\");\nlex = new FrenchLexer(reader, tf, props);\n// after\nprops.put(\"ellipses\", \"unicode\");\nlex = new FrenchLexer(reader, tf, props);","handlingStrategy":"validation","validationCode":"// before constructing FrenchLexer\nString v = options.get(\"ellipses\");\nif (v != null) {\n  try { LexerUtils.EllipsesEnum.valueOf(v.trim().toUpperCase(Locale.ROOT)); }\n  catch (IllegalArgumentException e) { throw new IllegalArgumentException(\"bad ellipses value: \" + v); }\n}","typeGuard":null,"tryCatchPattern":"try {\n  lex = new FrenchLexer(reader, tf, options);\n} catch (IllegalArgumentException e) {\n  if (e.getMessage().contains(\"Not a valid ellipses style\")) {\n    options.put(\"ellipses\", \"unicode\");\n    lex = new FrenchLexer(reader, tf, options);\n  } else throw e;\n}","preventionTips":["Keep a constants file of valid option values derived from LexerUtils.EllipsesEnum.","Never hand-copy option strings between tokenizers without checking each enum.","Unit-test pipeline option maps at startup, before annotation jobs run."],"tags":["java","tokenization","configuration","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a","analyzedAt":"2026-09-10T02:24:07.274Z","contentChangedAt":"2026-09-10T02:24:07.274Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}