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

Rick McGuire resolved GERONIMO-4129.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.2

Committed revision 669490.

This uncovered 2 issues:

1)  The SharedFileInputStream was having problems with properly handling eof 
situations, which was putting the parse logic into a loop, causing the OOM 
error. 

2)  The MineMessage.parse() method was not calling the protected 
createInternetHeaders() method for creating the headers, which cause some 
extensibility problems for the MimeMessage subclass. 

> 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
>             Fix For: 2.2
>
>
> 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