{"record":{"id":"4a55fe8c09473e93","repo":"apache/hadoop","slug":"illegal-file-pattern-an-escaped-character-does-no","errorCode":null,"errorMessage":"Illegal file pattern: An escaped character does not present for glob \" + filePattern + \" at \" + i","messagePattern":"Illegal file pattern: An escaped character does not present for glob \" \\+ filePattern \\+ \" at \" \\+ i","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/GlobExpander.java","lineNumber":108,"sourceCode":"    int leftmost = leftmostOuterCurlyContainingSlash(filePattern,\n        filePatternWithOffset.offset);\n    if (leftmost == -1) {\n      return null;\n    }\n    int curlyOpen = 0;\n    StringBuilder prefix = new StringBuilder(filePattern.substring(0, leftmost));\n    StringBuilder suffix = new StringBuilder();\n    List<String> alts = new ArrayList<String>();\n    StringBuilder alt = new StringBuilder();\n    StringBuilder cur = prefix;\n    for (int i = leftmost; i < filePattern.length(); i++) {\n      char c = filePattern.charAt(i);\n      if (cur == suffix) {\n        cur.append(c);\n      } else if (c == '\\\\') {\n        i++;\n        if (i >= filePattern.length()) {\n          throw new IOException(\"Illegal file pattern: \"\n              + \"An escaped character does not present for glob \"\n              + filePattern + \" at \" + i);\n        }\n        c = filePattern.charAt(i);\n        cur.append(c);\n      } else if (c == '{') {\n        if (curlyOpen++ == 0) {\n          alt.setLength(0);\n          cur = alt;\n        } else {\n          cur.append(c);\n        }\n\n      } else if (c == '}' && curlyOpen > 0) {\n        if (--curlyOpen == 0) {\n          alts.add(alt.toString());\n          alt.setLength(0);\n          cur = suffix;","sourceCodeStart":90,"sourceCodeEnd":126,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/GlobExpander.java#L90-L126","documentation":"Error \"Illegal file pattern: An escaped character does not present for glob \" + filePattern + \" at \" + i\" thrown in apache/hadoop.","triggerScenarios":"Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/GlobExpander.java:108 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the dangling backslash at the end of the glob pattern or escape a following character.","Validate the glob pattern before use."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}