Check if folders are actually alive

pull/178/head
M66B 6 years ago
parent d87fb53960
commit 72ede04868

@ -586,6 +586,16 @@ class Core {
}); });
} }
static boolean isAlive(IMAPFolder ifolder) {
try {
noop(ifolder);
} catch (MessagingException ex) {
Log.i(ifolder.getFullName(), ex);
return false;
}
return true;
}
private static void onSeen(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, JSONException { private static void onSeen(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, JSONException {
// Mark message (un)seen // Mark message (un)seen
DB db = DB.getInstance(context); DB db = DB.getInstance(context);

@ -1346,7 +1346,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
if (folder.synchronize) if (folder.synchronize)
if (!folder.poll && capIdle) { if (!folder.poll && capIdle) {
// Sends folder NOOP // Sends folder NOOP
if (!mapFolders.get(folder).isOpen()) if (!Core.isAlive(mapFolders.get(folder)))
throw new StoreClosedException(iservice.getStore(), folder.name); throw new StoreClosedException(iservice.getStore(), folder.name);
} else { } else {
if (folder.poll_count == 0) if (folder.poll_count == 0)

Loading…
Cancel
Save