Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
2.2.0
-
None
-
windows XP,
Java 1.5.0_06
Description
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,
99, else if( o instanceof ArrayList )
100,
103, else
104,
110
111, return stream;