{"record":{"id":"13a28da8f70339e3","repo":"pxb1988/dex2jar","slug":"not-support-access-flags-name","errorCode":null,"errorMessage":"not support access flags \" + name","messagePattern":"not support access flags \" \\+ name","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"d2j-jasmin/src/main/antlr3/com/googlecode/d2j/jasmin/Jasmin.g","lineNumber":271,"sourceCode":"            return ACC_NATIVE;\r\n        } else if (name.equals(\"interface\")) {\r\n            return ACC_INTERFACE;\r\n        } else if (name.equals(\"abstract\")) {\r\n            return ACC_ABSTRACT;\r\n        } else if (name.equals(\"strict\")) {\r\n            return ACC_STRICT;\r\n        } else if (name.equals(\"strictfp\")) {\r\n            return ACC_STRICT;\r\n        } else if (name.equals(\"synthetic\")) {\r\n            return ACC_SYNTHETIC;\r\n        } else if (name.equals(\"annotation\")) {\r\n            return ACC_ANNOTATION;\r\n        } else if (name.equals(\"enum\")) {\r\n            return ACC_ENUM;\r\n        } else if (name.equals(\"super\")) {\r\n            return ACC_SUPER;\r\n        }\r\n        throw new RuntimeException(\"not support access flags \" + name);\r\n    }\r\n    private static int getOp(String str) {\r\n            switch (str) {\r\n            case \"nop\":\r\n                return Opcodes.NOP;\r\n            case \"aconst_null\":\r\n                return Opcodes.ACONST_NULL;\r\n            case \"iconst_m1\":\r\n                return Opcodes.ICONST_M1;\r\n            case \"iconst_0\":\r\n                return Opcodes.ICONST_0;\r\n            case \"iconst_1\":\r\n                return Opcodes.ICONST_1;\r\n            case \"iconst_2\":\r\n                return Opcodes.ICONST_2;\r\n            case \"iconst_3\":\r\n                return Opcodes.ICONST_3;\r\n            case \"iconst_4\":\r","sourceCodeStart":253,"sourceCodeEnd":289,"githubUrl":"https://github.com/pxb1988/dex2jar/blob/b5bda4fb4935ae8b3869b422454ae3b3896c7bc1/d2j-jasmin/src/main/antlr3/com/googlecode/d2j/jasmin/Jasmin.g#L253-L289","documentation":"The Jasmin grammar's access-flag lookup maps textual flags (public, final, enum, super, annotation, ...) to ASM Opcodes bits. An unrecognized flag name throws RuntimeException('not support access flags <name>').","triggerScenarios":"A .j file contains an access-flag token the parser does not know, e.g. '.class public strictfp' or misspelled/legacy flags like 'synchronized' on class or 'transient' where unsupported.","commonSituations":"Jasmin files generated for older/newer jasmin dialects using flags this grammar doesn't recognize; typos ('pubic', 'Privat'); flags valid in Java but not mapped in this grammar.","solutions":["Remove or replace the unsupported flag with a mapped one (public/private/protected/static/final/super/interface/abstract/annotation/enum/synthetic, etc.)","Check spelling/case of the flag in the .j file","Add a mapping branch in getAccessFlag if you need the flag and control the grammar"],"exampleFix":"// before\n.class public strictfp Foo\n// after\n.class public Foo","handlingStrategy":"validation","validationCode":"static final Set<String> VALID = Set.of(\"public\",\"private\",\"protected\",\"static\",\"final\",\"super\",\"interface\",\"abstract\",\"synthetic\",\"annotation\",\"enum\");\nif (!VALID.contains(flag)) throw new IllegalArgumentException(\"unsupported flag: \" + flag);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Whitelist access flags when generating .j files","Strip flags not supported by this grammar before writing the file","Test generated files against the jasmin parser"],"tags":["jasmin","parser","access-flags"],"backgroundTag":"invalid-enum-value","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"}