我正在使用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