MimeMessageWrapper.writeTo(...) calls saveChanges() even if not needed
----------------------------------------------------------------------

                 Key: JAMES-1320
                 URL: https://issues.apache.org/jira/browse/JAMES-1320
             Project: JAMES Server
          Issue Type: Improvement
    Affects Versions: 3.0-beta3
            Reporter: Norman Maurer
            Assignee: Norman Maurer
             Fix For: 3.0-beta4


When MimeMessageWrapper.writeTo(...) is called we call saveChanges() everytime 
even when the messagewas not modified at all. This is not neeed and also can 
throw exceptions on malformated messages.

See the related stacktrace:
org.apache.james.queue.api.MailQueue$MailQueueException: Unable to enqueue mail;
  nested exception is:
        javax.mail.internet.ParseException: Expected ';', got "windows-1250"
        at 
org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:193)
        at 
org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:230)
        at 
org.apache.james.smtpserver.SendMailHandler.onMessage(SendMailHandler.java:64)
        at 
org.apache.james.smtpserver.DataLineJamesMessageHookHandler.processExtensions(DataLineJamesMessageHookHandler.java:178)
        at 
org.apache.james.smtpserver.DataLineJamesMessageHookHandler.onLine(DataLineJamesMessageHookHandler.java:96)
        at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
        at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
        at 
org.apache.james.protocols.smtp.core.ReceivedDataLineFilter.onLine(ReceivedDataLineFilter.java:54)
        at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
        at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
        at 
org.apache.james.protocols.smtp.core.esmtp.MailSizeEsmtpExtension.onLine(MailSizeEsmtpExtension.java:147)
        at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:76)
        at 
org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:61)
        at 
org.apache.james.protocols.impl.LineHandlerUpstreamHandler.messageReceived(LineHandlerUpstreamHandler.java:57)
        at 
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
        at 
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
        at 
org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:69)
        at 
org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:316)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:679)
Caused by: javax.mail.internet.ParseException: Expected ';', got "windows-1250"
        at javax.mail.internet.ParameterList.<init>(ParameterList.java:289)
        at javax.mail.internet.ContentType.<init>(ContentType.java:114)
        at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1322)
        at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
        at 
javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
        at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1345)
        at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
        at 
javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
        at 
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1345)
        at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2106)
        at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2074)
        at 
org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:295)
        at 
org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:290)
        at 
org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:286)
        at 
org.apache.james.core.MimeMessageWrapper.writeTo(MimeMessageWrapper.java:271)
        at 
org.apache.james.core.MimeMessageCopyOnWriteProxy.writeTo(MimeMessageCopyOnWriteProxy.java:184)
        at 
org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:161)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to