languagetool-org/languagetool · error · RuntimeException
Invalid format in " + settings.filename + ": '" + line + "',
Error message
Invalid format in " + settings.filename + ": '" + line + "', expected one element with no separator
What it means
Complementary format check in the multi-word chunker loader: a line contains only one element, i.e. no separator at all, so there is a phrase with no assigned chunk tag. The settings file requires phrase and tag separated by the configured separator.
Source
Thrown at languagetool-core/src/main/java/org/languagetool/tagging/disambiguation/MultiWordChunker.java:118
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) {
String firstChar = casingVariant.substring(0, 1);
if (mStartNoSpace.containsKey(firstChar)) {
if (mStartNoSpace.get(firstChar) < casingVariant.length()) {
mStartNoSpace.put(firstChar, casingVariant.length());View on GitHub (pinned to 2e990059ce)
Solutions
- Add the missing chunk tag after the separator on the cited line
- Ensure the separator (default tab) was not lost by editor autocorrect or copy-paste
- Verify the file wasn't saved with fields merged onto one column
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at languagetool-core/src/main/java/org/languagetool/tagging/disambiguation/MultiWordChunker.java:118 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/71586dd62ef37e28.
Report an issue: GitHub.