[ https://issues.apache.org/jira/browse/MIME4J-116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13052481#comment-13052481 ] Oleg Kalnichevski commented on MIME4J-116: ------------------------------------------ Stefano, While it would be nice to move the entire field parsing logic out of Core, I do not think this can be done easily if at all. Please do not forget that the _parsed_ field instance is also exposed through the MimeTokenStream#getField() method and this value gets passed onto the ContentHandler. This is the only way I could find to avoid double parsing of header fields in both body descriptor and content handler. We could change MutableBodyDescriptor to act as a stateful field parser but I would consider that a much uglier hack than having FieldParser interface defined in Core instead of Dom. Oleg > Avoid duplicate parsing of header fields > ---------------------------------------- > > Key: MIME4J-116 > URL: https://issues.apache.org/jira/browse/MIME4J-116 > Project: JAMES Mime4j > Issue Type: Improvement > Affects Versions: 0.6 > Reporter: Markus Wiederkehr > Fix For: 0.7 > > > Currently some header fields are parsed twice when building a DOM. Once by DefaultBodyDescriptor or MaximalBodyDescriptor and a second time by MessageBuilder using Field.parse(). > Also different parsers are used in both stages. The body descriptors use handcrafted parsers whereas Field.parse uses JavaCC generated parsers. The handcrafted version does not seem to handle comments in a header correctly. > The situation should be improved by parsing a header field only once and passing that already parsed field to a content handler. Also only one sort of field parser should be used; either handcrafted or generated. My personal opinion is that it might be easier for a handcrafted parser to be more tolerant against malformed header fields. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira