Wed, 31 Dec 2014 07:22:50 +0100
Correct previous dual key logic pending first delivery installment.
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 package org.mozilla.gecko.sync;
7 import org.mozilla.gecko.sync.net.SyncStorageResponse;
9 import android.content.SyncResult;
11 public class HTTPFailureException extends SyncException {
12 private static final long serialVersionUID = -5415864029780770619L;
13 public SyncStorageResponse response;
15 public HTTPFailureException(SyncStorageResponse response) {
16 this.response = response;
17 }
19 @Override
20 public String toString() {
21 String errorMessage;
22 try {
23 errorMessage = this.response.getErrorMessage();
24 } catch (Exception e) {
25 // Oh well.
26 errorMessage = "[unknown error message]";
27 }
28 return "<HTTPFailureException " + this.response.getStatusCode() +
29 " :: (" + errorMessage + ")>";
30 }
32 @Override
33 public void updateStats(GlobalSession globalSession, SyncResult syncResult) {
34 switch (response.getStatusCode()) {
35 case 401:
36 // Node reassignment 401s get handled internally.
37 syncResult.stats.numAuthExceptions++;
38 return;
39 case 500:
40 case 501:
41 case 503:
42 // TODO: backoff.
43 syncResult.stats.numIoExceptions++;
44 return;
45 }
46 }
47 }