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: [email protected]
For additional commands, e-mail: [email protected]