[
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.