
|
If you were logged in you would be able to see more operations.
|
|
|
|
File Attachments:
|
|
|
Image Attachments:
|
|
|
Environment:
|
windows XP,
Java 1.5.0_06
windows XP,
Java 1.5.0_06
|
|
| Resolution Date: |
10/Jun/06 08:58 PM
|
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;
|
|
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, {
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;
|
Show » |
made changes - 27/May/06 08:48 AM
| Field |
Original Value |
New Value |
|
Attachment
|
|
picture.GIF
[ 12334642
]
|
made changes - 27/May/06 05:03 PM
|
Assignee
|
|
Stefano Bagnara
[ bago
]
|
made changes - 27/May/06 05:04 PM
|
Fix Version/s
|
|
2.3.0a4
[ 12311920
]
|
|
Priority
|
Major
[ 3
]
|
Critical
[ 2
]
|
made changes - 30/May/06 01:17 AM
|
Assignee
|
Stefano Bagnara
[ bago
]
|
|
made changes - 31/May/06 12:10 AM
|
Assignee
|
|
Bernd Fondermann
[ brainlounge
]
|
made changes - 31/May/06 05:19 AM
|
Assignee
|
Bernd Fondermann
[ brainlounge
]
|
Noel J. Bergman
[ noel
]
|
made changes - 10/Jun/06 08:58 PM
|
Resolution
|
|
Fixed
[ 1
]
|
|
Fix Version/s
|
|
2.4.0
[ 12311645
]
|
|
Status
|
Open
[ 1
]
|
Resolved
[ 5
]
|
made changes - 21/Jul/06 03:37 PM
|
Fix Version/s
|
3.0
[ 10427
]
|
|
made changes - 21/Nov/07 08:31 AM
|
Status
|
Resolved
[ 5
]
|
Closed
[ 6
]
|
|