summaryrefslogtreecommitdiffstats
path: root/provider_src/com/android/email/mail/store/ImapConnection.java
diff options
context:
space:
mode:
Diffstat (limited to 'provider_src/com/android/email/mail/store/ImapConnection.java')
-rw-r--r--provider_src/com/android/email/mail/store/ImapConnection.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/provider_src/com/android/email/mail/store/ImapConnection.java b/provider_src/com/android/email/mail/store/ImapConnection.java
index 3e5eb2a8a..7bb604e02 100644
--- a/provider_src/com/android/email/mail/store/ImapConnection.java
+++ b/provider_src/com/android/email/mail/store/ImapConnection.java
@@ -235,6 +235,7 @@ class ImapConnection {
destroyResponses();
mParser = null;
mImapStore = null;
+ mIdling = false;
}
int getReadTimeout() throws IOException {
@@ -397,13 +398,14 @@ class ImapConnection {
*/
List<ImapResponse> getCommandResponses() throws IOException, MessagingException {
final List<ImapResponse> responses = new ArrayList<ImapResponse>();
+ final ImapResponseParser parser = mParser; // might get reset during idling
ImapResponse response = null;
boolean idling = false;
boolean throwSocketTimeoutEx = true;
- int lastSocketTimeout = getReadTimeout();
+ final int lastSocketTimeout = getReadTimeout();
try {
do {
- response = mParser.readResponse();
+ response = parser.readResponse();
if (idling) {
setReadTimeout(IDLE_OP_READ_TIMEOUT);
throwSocketTimeoutEx = false;
@@ -418,7 +420,7 @@ class ImapConnection {
throw ex;
}
} finally {
- mParser.resetIdlingStatus();
+ parser.resetIdlingStatus();
if (lastSocketTimeout != getReadTimeout()) {
setReadTimeout(lastSocketTimeout);
}