From mime4j-dev-return-606-apmail-james-mime4j-dev-archive=james.apache.org@james.apache.org Tue Nov 03 15:12:22 2009 Return-Path: Delivered-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Received: (qmail 90467 invoked from network); 3 Nov 2009 15:12:22 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Nov 2009 15:12:22 -0000 Received: (qmail 2001 invoked by uid 500); 3 Nov 2009 15:12:22 -0000 Delivered-To: apmail-james-mime4j-dev-archive@james.apache.org Received: (qmail 1960 invoked by uid 500); 3 Nov 2009 15:12:22 -0000 Mailing-List: contact mime4j-dev-help@james.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mime4j-dev@james.apache.org Delivered-To: mailing list mime4j-dev@james.apache.org Received: (qmail 1950 invoked by uid 99); 3 Nov 2009 15:12:21 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Nov 2009 15:12:21 +0000 X-ASF-Spam-Status: No, hits=-10.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Nov 2009 15:12:19 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 6AB8E234C052 for ; Tue, 3 Nov 2009 07:11:59 -0800 (PST) Message-ID: <353662733.1257261119422.JavaMail.jira@brutus> Date: Tue, 3 Nov 2009 15:11:59 +0000 (UTC) From: "Markus Wiederkehr (JIRA)" To: mime4j-dev@james.apache.org Subject: [jira] Commented: (MIME4J-139) DelegatingFieldParser NPE problem In-Reply-To: <1288585394.1257240719579.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/MIME4J-139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12773083#action_12773083 ] Markus Wiederkehr commented on MIME4J-139: ------------------------------------------ I think it should not be a problem to make defaultParser a static final member of DelegatingFieldParser. After all it gets initialized with UnstructuredField.PARSER which is a static final variable itself.. But it would still be good to understand how and why the problem occurs. I simply don't see how the local variable 'parser' can ever be null in DelegatingFieldParser line 51. Method getParser() is not overwritten and defaultParser does not seem to get modified anywhere. Any ideas anyone? > DelegatingFieldParser NPE problem > --------------------------------- > > Key: MIME4J-139 > URL: https://issues.apache.org/jira/browse/MIME4J-139 > Project: JAMES Mime4j > Issue Type: Bug > Affects Versions: 0.6 > Environment: jre 1.6.11 > Reporter: Andrzej Rusin > Priority: Minor > Original Estimate: 0.08h > Remaining Estimate: 0.08h > > We have custom ContentHandlers that extend AbstractContentHandler and add some custom Fields that extend AbstractField. > We were getting: > java.lang.NullPointerException > at org.apache.james.mime4j.field.DelegatingFieldParser.parse(DelegatingFieldParser.java:51) > at org.apache.james.mime4j.field.AbstractField.parse(AbstractField.java:171) > at org.apache.james.mime4j.field.AbstractField.parse(AbstractField.java:63) > at org.apache.james.mime4j.message.MessageBuilder.field(MessageBuilder.java:101) > at org.apache.james.mime4j.parser.MimeStreamParser.parse(MimeStreamParser.java:121) > at org.apache.james.mime4j.message.Message.(Message.java:141) > at org.apache.james.mime4j.message.Message.(Message.java:100) > always AFTER the MimeStreamParser got invoked with our content handlers (so, not on our parsing, but eg. later, on normal > new Message(InputStream). > Looked like we are currupting something inside MimeStreamParser. > Then I noticed that DelegatingFieldParser.defaultParser is defined as: > private FieldParser defaultParser = UnstructuredField.PARSER; > while other field parsers have: > static final FieldParser PARSER = new FieldParser() {...} > So I changed DelegatingFieldParser.defaultParser to static final and the NPEs do not occur anymore. > I do not undestand exactly why this happens, but that are the facts. > Is there any reason why DelegatingFieldParser.defaultParser can't be static final? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.