You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Bernd Fondermann (JIRA)" <se...@james.apache.org> on 2006/06/02 11:48:31 UTC

[jira] Commented: (JAMES-512) OutOfMemoryError -- object not released.

    [ http://issues.apache.org/jira/browse/JAMES-512?page=comments#action_12414390 ] 

Bernd Fondermann commented on JAMES-512:
----------------------------------------

a db configuration runs into memory problems (Xmx=64m) after less than two hours, too.

(this is a setup where 500 mails are created per minute, which is quite a load: 30 000 mails/hr!)






> 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
>     Assignee: Noel J. Bergman
>     Priority: Critical
>      Fix For: 2.3.0a4
>  Attachments: james-512.patch, 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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org