mobile/android/base/sync/HTTPFailureException.java

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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 }

mercurial