Apache James是一款易用的开源Java邮件服务器。 Apache James的spooler中出现了错误情况的话就可能导致内存泄漏: if (lock(s)) { MailImpl mail = null; try { mail = retrieve(s); } catch (javax.mail.MessagingException e) { ... } if (mail == null) { continue; } 如果检索返回为空或出现错误,就会保持锁定,泄漏内存。此外: if (filter.accept (mail.getName(), mail.getState(), mail.getLastUpdated().getTime(), mail.getErrorMessage())) { return mail; } 如果没有接受filter,就会泄漏锁定信息,该特定线程的消息会一直锁定。
Apache James是一款易用的开源Java邮件服务器。 Apache James的spooler中出现了错误情况的话就可能导致内存泄漏: if (lock(s)) { MailImpl mail = null; try { mail = retrieve(s); } catch (javax.mail.MessagingException e) { ... } if (mail == null) { continue; } 如果检索返回为空或出现错误,就会保持锁定,泄漏内存。此外: if (filter.accept (mail.getName(), mail.getState(), mail.getLastUpdated().getTime(), mail.getErrorMessage())) { return mail; } 如果没有接受filter,就会泄漏锁定信息,该特定线程的消息会一直锁定。