You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Benoit Tellier (Jira)" <se...@james.apache.org> on 2020/05/11 03:30:00 UTC

[jira] [Created] (JAMES-3176) MDN parser instantiation via parboiled fails

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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org