languagetool-org/languagetool · error · RuntimeException
Invalid format in " + settings.filename + ": '" + line + "',
Error message
Invalid format in " + settings.filename + ": '" + line + "', expected two tab-separated parts
What it means
Format validation while loading the multi-word chunker settings file: a line does not split into exactly two tab-separated parts (multi-word string, chunk tag). Fires on malformed lines in the language's multiwords.txt, e.g. missing tab, extra fields, or a line that is only a word without its tag.
Source
Thrown at languagetool-core/src/main/java/org/languagetool/tagging/disambiguation/MultiWordChunker.java:114
mFullSpace.trim();
mFullNoSpace.trim();
this.mStartSpace = mStartSpace;
this.mStartNoSpace = mStartNoSpace;
this.mFullSpace = mFullSpace;
this.mFullNoSpace = mFullNoSpace;
initialized = true;
}
}
private void fillMaps(Map<String, Integer> mStartSpace, Map<String, Integer> mStartNoSpace, Map<String,
AnalyzedToken> mFullSpace, Map<String, AnalyzedToken> mFullNoSpace) {
try (InputStream stream = JLanguageTool.getDataBroker().getFromResourceDirAsStream(settings.filename)) {
List<String> lines = loadWords(stream);
for (String line : lines) {
String[] stringAndTag = line.split(separator);
if (stringAndTag.length != 2 && settings.defaultTag == null) {
throw new RuntimeException(
"Invalid format in " + settings.filename + ": '" + line + "', expected two tab-separated parts");
}
if (stringAndTag.length != 1 && settings.defaultTag != null) {
throw new RuntimeException(
"Invalid format in " + settings.filename + ": '" + line + "', expected one element with no separator");
}
List<String> casingVariants = new ArrayList<>();
String originalString = intern(stringAndTag[0]);
String tag = intern(settings.defaultTag != null ? settings.defaultTag : stringAndTag[1]);
boolean containsSpace = originalString.indexOf(' ') > 0;
casingVariants.add(originalString);
if (containsSpace) {
casingVariants.addAll(getTokenLettercaseVariants(originalString, mFullSpace));
} else {
casingVariants.addAll(getTokenLettercaseVariants(originalString, mFullNoSpace));
}
for (String casingVariant : casingVariants) {
if (!containsSpace) {View on GitHub (pinned to 2e990059ce)
Solutions
- Fix the cited line so it has exactly two tab-separated fields: phrase and chunk tag
- Check for a #separatorRegExp= header changing the expected separator
- Remove extra tabs or trailing whitespace-created fields
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at languagetool-core/src/main/java/org/languagetool/tagging/disambiguation/MultiWordChunker.java:114 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of languagetool-org/languagetool@2e990059ce (2026-09-06).
Data as JSON: /api/errors/cc3c14965cbd5a74.
Report an issue: GitHub.