
| Key: |
JAMES-268
|
| Type: |
Bug
|
| Status: |
Closed
|
| Resolution: |
Fixed
|
| Priority: |
Major
|
| Assignee: |
Unassigned
|
| Reporter: |
Noel J. Bergman
|
| Votes: |
0
|
| Watchers: |
0
|
|
If you were logged in you would be able to see more operations.
|
|
|
| Resolution Date: |
22/Apr/04 01:50 AM
|
|
I believe there is a memory leak under an error condition in the spooler that I'll be fixing, but that should be able to wait for a 2.2.1. If I am correct, the nature of the error is here:
if (lock(s)) {
MailImpl mail = null;
try {
mail = retrieve(s);
} catch (javax.mail.MessagingException e) {
...
}
if (mail == null) {
continue;
}
If retrieve returns null or throws an exception, the lock is kept, and we leak memory. Also ...
if (filter.accept (mail.getName(),
mail.getState(),
mail.getLastUpdated().getTime(),
mail.getErrorMessage())) {
return mail;
}
If the filter doesn't accept, we leak the lock info, although we'll eventually clean it up. The problem here is that the message is forever locked for this specific thread.
|
|
Description
|
I believe there is a memory leak under an error condition in the spooler that I'll be fixing, but that should be able to wait for a 2.2.1. If I am correct, the nature of the error is here:
if (lock(s)) {
MailImpl mail = null;
try {
mail = retrieve(s);
} catch (javax.mail.MessagingException e) {
...
}
if (mail == null) {
continue;
}
If retrieve returns null or throws an exception, the lock is kept, and we leak memory. Also ...
if (filter.accept (mail.getName(),
mail.getState(),
mail.getLastUpdated().getTime(),
mail.getErrorMessage())) {
return mail;
}
If the filter doesn't accept, we leak the lock info, although we'll eventually clean it up. The problem here is that the message is forever locked for this specific thread. |
Show » |
|