genorimo MimeMessage extensibility internal behaviour vs sun implementation OOM 
issue.
--------------------------------------------------------------------------------------

                 Key: GERONIMO-4129
                 URL: https://issues.apache.org/jira/browse/GERONIMO-4129
             Project: Geronimo
          Issue Type: Bug
      Security Level: public (Regular issues)
          Components: mail
    Affects Versions: 2.1.1
            Reporter: Stefano Bagnara
            Assignee: Rick McGuire
            Priority: Minor


In Apache JAMES we use a MimeMessageWrapper class that is an extension for 
MimeMessage providing some sort of lazy loading for streams coming from files 
and db records. To do that we work with protected and public fields/methods 
from MimeMessage.

Even the most simple test is current running OOM during the parse().

In order to run the tests you will need the following files:
http://svn.apache.org/repos/asf/james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java
http://svn.apache.org/repos/asf/james/server/trunk/core-library/src/main/java/org/apache/james/util/InternetPrintWriter.java
http://svn.apache.org/repos/asf/james/server/trunk/core-library/src/main/java/org/apache/james/util/io/IOUtil.java
http://svn.apache.org/repos/asf/james/server/trunk/phoenix-deployment/src/test/org/apache/james/core/MimeMessageWrapperTest.java

This code also uses Disposable and ContainerUtils from avalon: they are simply 
a marker interface for the dispose() method and ContainerUtils.dispose() is a 
method to call dispose only if the object is Disposable.

if you don't care of unclosed resources you can remove Disposable and the 
ContainerUtils. calls.

RFC2822Headers from mailets is instead a constants collection for rfc headers: 
you can safely replace that with literals.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to