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