我正在使用java郵件與gmail連接,並且我正在爲所有操作保留一個存儲。 (商店被設置爲靜態。)。 IMAPFolder實例附帶有imap偵聽器。所以文件夾始終保持打開狀態。 (文件夾關閉不會隨時調用)但是,幾分鐘後運行,我得到FolderClosedException。在發生異常之後,雖然可以重新打開該文件夾,但不能再次發出idle()命令,這將導致NullPointerException。JavaMail:FolderClosedException頻繁發生
保持文件夾總是打開有什麼問題嗎?
在此先感謝。
============================================== =====================
[編輯] 在這裏我粘貼我正在做的POC與實際的代碼。在重新連接存儲之後檢查.isConnected()時出現NullPointerException。以下是將idle()命令發送到商店的Thread的運行方法。
public void run() {
while (true) {
try {
System.out.println("Checking connectivity...");
if (store.isConnected()) {
store.idle();
System.out.println("IDLE send...");
} else {
Thread.sleep(5000);
System.out.println("Tring to connect...");
//Trying to reconnect to the store.
store.connect();
System.out.println("Previous store connected again");
}
} catch (InterruptedException ex) {
System.out.println("InterruptedException...");
} catch (StoreClosedException ex) {
System.out.println("StoreClosedException...");
} catch (MessagingException ex) {
System.out.println("MessagingException...");
}
}
}
這裏是堆棧跟蹤:
Exception in thread "Thread-1" java.lang.NullPointerException
at com.sun.mail.imap.IMAPStore.waitIfIdle(IMAPStore.java:1881)
at com.sun.mail.imap.IMAPStore.getStoreProtocol(IMAPStore.java:946)
at com.sun.mail.imap.IMAPStore.isConnected(IMAPStore.java:1347)
at pocworks.POCWorks1$IDLEThread.run(POCWorks1.java:125)
任何人有任何想法?非常感謝任何建議,因爲這非常緊迫。謝謝。 – 2013-02-28 18:38:01