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