james-mime4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitry Katsubo (JIRA)" <mime4j-...@james.apache.org>
Subject [jira] [Commented] (MIME4J-280) Exception stack trace should include the underlying parser exception
Date Wed, 23 May 2018 10:23:00 GMT

    [ https://issues.apache.org/jira/browse/MIME4J-280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16487044#comment-16487044
] 

Dmitry Katsubo commented on MIME4J-280:
---------------------------------------

I will create a new pull request. However there are few more places in exception handling
which would be nice to fix. This is about throwing {{ParseException}} without any message,
for example in [{{Builder.java:120}}|https://github.com/apache/james-mime4j/blob/master/dom/src/main/java/org/apache/james/mime4j/field/address/Builder.java#L120]
there is code like this:
{code}
if (n instanceof ASTphrase) {
    name = buildString((ASTphrase) n, false);
} else {
    throw new ParseException();   // <-- can this me more informative?
}
{code}
I suggest to replace such places with something more informative, e.g.
{code}
throw new ParseException("Address \"phrase\" is expected but got \"" + n + "\"");
{code}
Any idea to make it more informative?


> Exception stack trace should include the underlying parser exception
> --------------------------------------------------------------------
>
>                 Key: MIME4J-280
>                 URL: https://issues.apache.org/jira/browse/MIME4J-280
>             Project: James Mime4j
>          Issue Type: Improvement
>          Components: dom
>    Affects Versions: 0.7.2
>            Reporter: Dmitry Katsubo
>            Priority: Trivial
>
> I think this is beneficial to be able to trace the exception back to JJTree parser, in
particular I suggest to wrap {{TokenMgrError}} in corresponding places e.g. in the way it
is shown in the following patch:
> {code}
> --- a/dom/src/main/jjtree/org/apache/james/mime4j/field/address/AddressListParser.jjt
> +++ b/dom/src/main/jjtree/org/apache/james/mime4j/field/address/AddressListParser.jjt
> @@ -77,7 +77,7 @@
>              parseAddressList0();
>              return (ASTaddress_list) jjtree.rootNode();
>          } catch (TokenMgrError tme) {
> -            throw new ParseException(tme.getMessage());
> +            throw new ParseException(tme);
>          }
>      }
>  
> @@ -86,7 +86,7 @@
>              parseAddress0();
>              return (ASTaddress) jjtree.rootNode();
>          } catch (TokenMgrError tme) {
> -            throw new ParseException(tme.getMessage());
> +            throw new ParseException(tme);
>          }
>      }
>  
> @@ -95,7 +95,7 @@
>              parseMailbox0();
>              return (ASTmailbox) jjtree.rootNode();
>          } catch (TokenMgrError tme) {
> -            throw new ParseException(tme.getMessage());
> +            throw new ParseException(tme);
>          }
>      }
>  
> {code}
> If the community finds it useful, I can contribute to that.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message