Benoit Tellier created JAMES-3176: ------------------------------------- Summary: MDN parser instantiation via parboiled fails Key: JAMES-3176 URL: https://issues.apache.org/jira/browse/JAMES-3176 Project: James Server Issue Type: Improvement Components: Mailet Contributions, mdn Affects Versions: 3.5.0 Reporter: Benoit Tellier Fix For: 3.6.0
Upon execution of ExtractMDNOriginalJMAPMessageId & Vacation mailet we encounter the following exceptions: {code:java} java.lang.RuntimeException: Error creating extended parser class: null at org.parboiled.Parboiled.createParser(Parboiled.java:58) at org.apache.james.mdn.MDNReportParser.parse(MDNReportParser.java:57) at org.apache.james.mdn.MDNReportParser.parse(MDNReportParser.java:53) at org.apache.james.jmap.mailet.ExtractMDNOriginalJMAPMessageId.parseReport(ExtractMDNOriginalJMAPMessageId.java:120) [...] Caused by: java.lang.IllegalArgumentException: null at org.objectweb.asm.ClassVisitor.<init>(Unknown Source) at org.objectweb.asm.ClassVisitor.<init>(Unknown Source) at org.objectweb.asm.tree.ClassNode.<init>(Unknown Source) at org.parboiled.transform.ParserClassNode.<init>(ParserClassNode.java:43) at org.parboiled.transform.ParserTransformer.extendParserClass(ParserTransformer.java:43) at org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:39) at org.parboiled.Parboiled.createParser(Parboiled.java:54) {code} Code inspection did not allow me to identify the route cause of the failure due to some heavy reflection dark magic taking place. However instantiation of the parser was performed via reflection upon each MDN parsing. Given that a parser only defines a set of rules, and is thus immutable, we can turn it into a constant, effectively solving our problem ? -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org