[ http://issues.apache.org/jira/browse/JAMES-512?page=comments#action_12413568 ]
Stefano Bagnara commented on JAMES-512: --------------------------------------- Can you search the logs for these strings: "Exception caught while storing a stream" WARN level (maybe in objectstorage) "Exception storing mail" ERROR level in (maybe in mailstore) >From a code review I think the only leak could be when an exception is thrown >in that code and "stream" has been created but not returned. We should probably add only a "if (stream != null) stream.close()" in the catch clause at the end of the code you reported. Can you provide this log info and eventually try to patch the code with the above line and test again? > OutOfMemoryError -- object not released. > ---------------------------------------- > > Key: JAMES-512 > URL: http://issues.apache.org/jira/browse/JAMES-512 > Project: James > Type: Bug > Components: MailStore & MailRepository > Versions: 2.2.0 > Environment: windows XP, > Java 1.5.0_06 > Reporter: Quande Ren > Fix For: 2.3.0a4 > Attachments: picture.GIF > > I use the file system to store the emails. > When I run the James for a long time, the james server used more and more > heap memory, eventually it runs out of memory and refuse to receive email. > only restart the james will work. > I used JProfile Memory Debugger(you can get the trial version from > www.quest.com) and found a clue. the object allocated from following code at > line 92 does not always get released, cause the memory been used up > eventually. I will attach a picture file showing the call stack. > 91, final OutputStream outputStream = getOutputStream( key ); > 92, final BufferedOutputStream stream = new BufferedOutputStream( > outputStream ); > 93 > 94, final Object o = m_outputs.get( key ); > 95, if( null == o ) > 96, { > 97, m_outputs.put( key; stream ); > 98, } > 99, else if( o instanceof ArrayList ) > 100, { > 101, ( (ArrayList)o ).add( stream ); > 102, } > 103, else > 104, { > 105, final ArrayList list = new ArrayList(); > 106, list.add( o ); > 107, list.add( stream ); > 108, m_outputs.put( key; list ); > 109, } > 110 > 111, return stream; -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]