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: [email protected]
For additional commands, e-mail: [email protected]