Issue Details (XML | Word | Printable)

Key: JAMES-512
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Critical Critical
Assignee: Noel J. Bergman
Reporter: Quande Ren
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
JAMES Server

OutOfMemoryError -- object not released.

Created: 27/May/06 08:47 AM   Updated: 21/Nov/07 08:31 AM
Return to search
Component/s: MailStore & MailRepository
Affects Version/s: 2.2.0
Fix Version/s: 2.3.0

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works james-512.patch 2006-05-31 05:41 AM Stefano Bagnara 11 kB
Image Attachments:

1. picture.GIF
(18 kB)
Environment:
windows XP,
Java 1.5.0_06

Resolution Date: 10/Jun/06 08:58 PM


 Description  « Hide
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;


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.