Added JavaMail idle failsafe

pull/184/head
M66B 4 years ago
parent c4f9d1584e
commit a0a8763047

@ -1185,7 +1185,11 @@ public class IMAPStore extends Store
// someone else is using the connection, give up
// and wait until they're done
p = null;
pool.wait();
pool.wait(pool.clientTimeoutInterval);
if (pool.storeConnectionInUse) {
eu.faircode.email.Log.e("getStoreProtocol timeout");
throw new InterruptedException("getStoreProtocol timeout");
}
} catch (InterruptedException ex) {
// restore the interrupted state, which callers might
// depend on
@ -2069,7 +2073,11 @@ public class IMAPStore extends Store
// without aborting it ourselves
try {
// give up lock and wait to be not idle
pool.wait();
pool.wait(pool.clientTimeoutInterval);
if (pool.idleState != ConnectionPool.RUNNING) {
eu.faircode.email.Log.e("idle timeout");
throw new InterruptedException("idle timeout");
}
} catch (InterruptedException ex) {
// restore the interrupted state, which callers might
// depend on
@ -2162,7 +2170,11 @@ public class IMAPStore extends Store
}
try {
// give up lock and wait to be not idle
pool.wait();
pool.wait(pool.clientTimeoutInterval);
if (pool.idleState != ConnectionPool.RUNNING) {
eu.faircode.email.Log.e("waitIfIdle timeout");
throw new InterruptedException("waitIfIdle timeout");
}
} catch (InterruptedException ex) {
// If someone is trying to interrupt us we can't keep going
// around the loop waiting for IDLE to complete, but we can't

Loading…
Cancel
Save