{"record":{"id":"f5b2e62470078237","repo":"elastic/elasticsearch","slug":"replacement-must-be-a-one-char-value","errorCode":null,"errorMessage":"replacement must be a one char value","messagePattern":"replacement must be a one char value","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/PathHierarchyTokenizerFactory.java","lineNumber":45,"sourceCode":"    private final boolean reverse;\n\n    PathHierarchyTokenizerFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) {\n        super(name);\n        bufferSize = settings.getAsInt(\"buffer_size\", 1024);\n        String delimiterString = settings.get(\"delimiter\");\n        if (delimiterString == null) {\n            this.delimiter = PathHierarchyTokenizer.DEFAULT_DELIMITER;\n        } else if (delimiterString.length() != 1) {\n            throw new IllegalArgumentException(\"delimiter must be a one char value\");\n        } else {\n            this.delimiter = delimiterString.charAt(0);\n        }\n\n        String replacementString = settings.get(\"replacement\");\n        if (replacementString == null) {\n            this.replacement = this.delimiter;\n        } else if (replacementString.length() != 1) {\n            throw new IllegalArgumentException(\"replacement must be a one char value\");\n        } else {\n            this.replacement = replacementString.charAt(0);\n        }\n        this.skip = settings.getAsInt(\"skip\", PathHierarchyTokenizer.DEFAULT_SKIP);\n        this.reverse = settings.getAsBoolean(\"reverse\", false);\n    }\n\n    @Override\n    public Tokenizer create() {\n        if (reverse) {\n            return new ReversePathHierarchyTokenizer(bufferSize, delimiter, replacement, skip);\n        }\n        return new PathHierarchyTokenizer(bufferSize, delimiter, replacement, skip);\n    }\n\n}\n","sourceCodeStart":27,"sourceCodeEnd":62,"githubUrl":"https://github.com/elastic/elasticsearch/blob/db6a809a667c081ca1dc7500389d26975573215f/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/PathHierarchyTokenizerFactory.java#L27-L62","documentation":"Error \"replacement must be a one char value\" thrown in elastic/elasticsearch.","triggerScenarios":"Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/PathHierarchyTokenizerFactory.java:45 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"db6a809a667c081ca1dc7500389d26975573215f","analyzedAt":"2026-08-12T01:39:14.192Z","schemaVersion":2},"datasetVersion":"2026-08-12T12:17:08.281Z"}