You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Thomas Pummer (Updated) (JIRA)" <ji...@apache.org> on 2012/01/13 10:57:39 UTC

[jira] [Updated] (EMAIL-110) java.lang.OutOfMemoryError: Java heap space while parsing Mime part

     [ https://issues.apache.org/jira/browse/EMAIL-110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Pummer updated EMAIL-110:
--------------------------------

    Attachment: EMAIL-110.patch

New MimeMessageParser test to verify that it can parse the eml file without getting OOM.
Reproduced an other eml file with the same defect, tested with the Maven project given by Stephen Kruger to ensure that the OOM error occures with it too.

The eml file is corrupt, as mentioned in my comment above. So the MimeMessageParser cannot detect any attachment within it. 
As an other example, Outlook Express cannot read it too. It shows the Attachment with a size of 0 Bytes
                
> java.lang.OutOfMemoryError: Java heap space while parsing Mime part
> -------------------------------------------------------------------
>
>                 Key: EMAIL-110
>                 URL: https://issues.apache.org/jira/browse/EMAIL-110
>             Project: Commons Email
>          Issue Type: Bug
>    Affects Versions: 1.2
>         Environment: Windows, Linux
>            Reporter: Stephen Kruger
>            Assignee: Siegfried Goeschl
>            Priority: Blocker
>         Attachments: EMAIL-110.patch, MailBug.zip, crashfix.eml
>
>
> I have a particular eml message which appears to cause a complete memory overflow deep within commons-email.
> A look at the source code does reveal a suspect "while" loop which appears to never exit properly, and should be rewritten so that bad data could not give us this situation.
> The stack trace is :
> java.lang.OutOfMemoryError: Java heap space
> 	at java.util.Arrays.copyOf(Arrays.java:2786)
> 	at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:71)
> 	at javax.mail.internet.MimeMultipart.readTillFirstBoundary(MimeMultipart.java:316)
> 	at javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:186)
> 	at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:130)
> 	at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:539)
> 	at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:133)
> 	at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1393)
> 	at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1366)
> 	at javax.mail.Transport.send(Transport.java:76)
> 	at javax.mail.Transport.send(Transport.java:48)
> There are many public threads illustrating this same error, but they never pinpoint the code to Commons Email, I'm guessing I'm using the code in a way which exhibits this behaviour :
> http://stackoverflow.com/questions/3177092/uploading-to-blobstore-gives-a-java-heap-outofmemoryerror
> http://stackoverflow.com/questions/2994031/outofmemoryerror-trying-to-upload-to-blobstore-locally

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira