2011-01-14 2 views
3

Я использую javamail для подключения IMAP к gmail. Все работает хорошо. Я просто хочу предотвратить злоупотребление памятью сервера.javamail - was был эффект store.close() в открытых папках?

Мой вопрос: что происходит, когда я закрываю магазин? [store.close();] закрывает ли все открытые папки? Вам нужно закрыть все папки?

Есть огромные преимущества в скорости, если я оставляю определенную папку открытой.

ответ

1

из Javamail API Documentation

«Закрыть эту услугу и оканчивается подключение. Близкий ConnectionEvent поставляется в любые ConnectionListeners. Любые компоненты обмена сообщений (папки, сообщения и т.д.), принадлежащие к данной услуге, являются недействительными после этой службы Обратите внимание, что служба закрыта, даже если этот метод прерывается ненормально, вызывая исключение MessagingException. "

Таким образом, вы можете оставить папку открытой, но если вы попробуете вторую папку folder.open, у вас будет исключение, в этом должны использоваться:

if(!folder.isOpen()){folder.open();} 

Я надеюсь, что вам помогут

+0

Я использовал этот вид проверки, но иногда (хотя) попал в исключение закрытой папки. Любое предложение? – kitokid