{"record":{"id":"65e69d33d35fa270","repo":"pxb1988/dex2jar","slug":"can-t-pase-string-65e69d","errorCode":null,"errorMessage":"can't pase string","messagePattern":"can't pase string","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"d2j-jasmin/src/main/antlr3/com/googlecode/d2j/jasmin/Jasmin.g","lineNumber":217,"sourceCode":"                    i += 2;\r\n                    break;\r\n                case 'u':\r\n                    String sub = str.substring(i + 2, i + 6);\r\n                    sb.append((char) Integer.parseInt(sub, 16));\r\n                    i += 6;\r\n                    break;\r\n                default:\r\n                    int x = 0;\r\n                    while (x < 3) {\r\n                        char e = str.charAt(i + 1 + x);\r\n                        if (e >= '0' && e <= '7') {\r\n                            x++;\r\n                        } else {\r\n                            break;\r\n                        }\r\n                    }\r\n                    if (x == 0) {\r\n                        throw new RuntimeException(\"can't pase string\");\r\n                    }\r\n                    sb.append((char) Integer.parseInt(str.substring(i + 1, i + 1 + x), 8));\r\n                    i += 1 + x;\r\n                }\r\n\r\n            } else {\r\n                sb.append(c);\r\n                i++;\r\n            }\r\n        }\r\n        return sb.toString();\r\n    }\r\n\r\n    private static int getAcc(String name) {\r\n        if (name.equals(\"public\")) {\r\n            return ACC_PUBLIC;\r\n        } else if (name.equals(\"private\")) {\r\n            return ACC_PRIVATE;\r","sourceCodeStart":199,"sourceCodeEnd":235,"githubUrl":"https://github.com/pxb1988/dex2jar/blob/b5bda4fb4935ae8b3869b422454ae3b3896c7bc1/d2j-jasmin/src/main/antlr3/com/googlecode/d2j/jasmin/Jasmin.g#L199-L235","documentation":"Jasmin grammar's string-escape parser handles octal escapes like \\NNN by counting following octal digits (x). If an escape sequence has zero valid octal digits (a lone backslash or \\ followed by a non-octal char), it throws RuntimeException(\"can't pase string\") — a typo of 'parse'.","triggerScenarios":"A .j jasmin source file contains a malformed escape inside a string literal, e.g. .limit or ldc with \"abc\\q\" or a trailing backslash.","commonSituations":"Hand-written or generated jasmin files with typos in escapes; tools exporting strings with backslashes not escaped; Windows-style paths pasted into string literals.","solutions":["Escape backslashes as \\\\ and use valid octal escapes (\\0-\\377) in the string","Replace bad escapes with the intended character or Unicode \\uXXXX as supported","Fix the generator producing the .j file to emit valid escapes"],"exampleFix":"// before\nldc \"C:\\temp\\x\"\n// after\nldc \"C:\\\\temp\\\\x\"","handlingStrategy":"validation","validationCode":"static String validateEscapes(String s) {\n    for (int i = 0; i < s.length(); i++)\n        if (s.charAt(i) == '\\\\' && (i + 1 >= s.length() || !isOctal(s.charAt(i + 1)))) throw new IllegalArgumentException(\"bad escape at \" + i);\n    return s;\n}\nstatic boolean isOctal(char c) { return c >= '0' && c <= '7'; }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always escape backslashes as \\\\ in generated .j strings","Lint jasmin string literals for lone or invalid escapes","Fix the upstream string emitter to use valid octal/unicode escapes"],"tags":["jasmin","parser","escape-sequence"],"backgroundTag":"invalid-escape-sequence","analyzedSha":"b5bda4fb4935ae8b3869b422454ae3b3896c7bc1","analyzedAt":"2026-09-08T00:44:01.258Z","contentChangedAt":"2026-09-08T00:44:01.258Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}