{"record":{"id":"e32b0a8b2bce16e6","repo":"languagetool-org/languagetool","slug":"could-not-find-day-of-week-for-daystr","errorCode":null,"errorMessage":"Could not find day of week for '\" + dayStr + \"'","messagePattern":"Could not find day of week for '\" \\+ dayStr \\+ \"'","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"languagetool-language-modules/eo/src/main/java/org/languagetool/rules/eo/DateCheckFilter.java","lineNumber":88,"sourceCode":"    if (day.equals(\"naua\"))  n += 9;\n    return n;\n  }\n\n  @SuppressWarnings(\"ControlFlowStatementWithoutBraces\")\n  @Override\n  protected int getDayOfWeek(String dayStr) {\n    String day = dayStr.toLowerCase();\n    if (day.startsWith(\"dim\")) return Calendar.SUNDAY;\n    if (day.startsWith(\"lun\")) return Calendar.MONDAY;\n    if (day.startsWith(\"mar\")) return Calendar.TUESDAY;\n    if (day.startsWith(\"mer\")) return Calendar.WEDNESDAY;\n    if (day.startsWith(\"ĵaŭ\")) return Calendar.THURSDAY;\n    if (day.startsWith(\"jau\")) return Calendar.THURSDAY;\n    if (day.startsWith(\"jhau\")) return Calendar.THURSDAY;\n    if (day.startsWith(\"jxau\")) return Calendar.THURSDAY;\n    if (day.startsWith(\"ven\")) return Calendar.FRIDAY;\n    if (day.startsWith(\"sab\")) return Calendar.SATURDAY;\n    throw new RuntimeException(\"Could not find day of week for '\" + dayStr + \"'\");\n  }\n\n  @SuppressWarnings(\"ControlFlowStatementWithoutBraces\")\n  @Override\n  protected String getDayOfWeek(Calendar date) {\n    String englishDay=date.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.UK);\n    if (englishDay.equals(\"Sunday\"))    return \"dimanĉo\";\n    if (englishDay.equals(\"Monday\"))    return \"lundo\";\n    if (englishDay.equals(\"Tuesday\"))   return \"mardo\";\n    if (englishDay.equals(\"Wednesday\")) return \"merkredo\";\n    if (englishDay.equals(\"Thursday\"))  return \"jaŭdo\";\n    if (englishDay.equals(\"Friday\"))    return \"vendredo\";\n    if (englishDay.equals(\"Saturday\"))  return \"sabato\";\n    return \"\";\n  }\n\n  @SuppressWarnings({\"ControlFlowStatementWithoutBraces\", \"MagicNumber\"})\n  @Override","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/languagetool-org/languagetool/blob/2e990059ce67d5e2a0f7f7ca5d31160c6709df4b/languagetool-language-modules/eo/src/main/java/org/languagetool/rules/eo/DateCheckFilter.java#L70-L106","documentation":"The Esperanto DateCheckFilter maps Esperanto weekday-name prefixes to Calendar constants. getDayOfWeek throws a RuntimeException when the given day string does not start with any known Esperanto (or transliterated) weekday prefix such as 'ven' or 'sab'.","triggerScenarios":"A date-check rule passes a 'weekDay' token whose normalized lowercase text does not match any Esperanto weekday prefix handled by the if-chain (e.g. a misspelled day or a non-Esperanto word).","commonSituations":"Rules matching a token that turns out not to be a weekday; typos in rule patterns; alternate spellings not covered by the prefix list; test calls with invalid day strings (as in testGetDayOfWeek).","solutions":["Verify the rule pattern only captures actual Esperanto weekday names.","Check the day string for typos or unsupported transliterations (e.g. 'jhau'/'jxau' variants) and add a prefix case if a legitimate spelling is missing.","Validate input in the rule so non-weekday tokens never reach the filter."],"exampleFix":"// before\ncallGetDayOfWeek(\"lundoj\"); // not matched\n// after\ncallGetDayOfWeek(\"lun\"); // matches Calendar.MONDAY","handlingStrategy":"validation","validationCode":"List<String> prefixes = List.of(\"lun\",\"mar\",\"mer\",\"ĵaŭ\",\"jau\",\"jhau\",\"jxau\",\"ven\",\"sab\");\nString day = dayStr.toLowerCase();\nif (prefixes.stream().noneMatch(day::startsWith)) throw new IllegalArgumentException(\"Not an Esperanto weekday: \" + dayStr);","typeGuard":null,"tryCatchPattern":"try {\n  int dow = filter.getDayOfWeek(dayStr);\n} catch (RuntimeException e) {\n  if (e.getMessage().startsWith(\"Could not find day of week\")) { /* skip or log invalid day token */ }\n}","preventionTips":["Ensure rule patterns only capture genuine Esperanto weekday tokens","Normalize input to lowercase before lookup","Add transliteration variants if your corpus uses them"],"tags":["languagetool","esperanto","date-filter","unrecognized-input"],"backgroundTag":"invalid-enum-value","analyzedSha":"2e990059ce67d5e2a0f7f7ca5d31160c6709df4b","analyzedAt":"2026-09-06T09:20:17.015Z","contentChangedAt":"2026-09-06T09:20:17.015Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}