anchor.diff:      this._awsClient.post(uri, payload).then((HttpClientResponse resp) {
         _readResponseAsString(resp).then((responseText) {
           if (resp.reasonPhrase.toUpperCase() != 'OK') {
  -          final err = new ErrorResponse.fromXml(responseText);
  -          _logger.warning(err.message);
  -          completer.completeError(err);
  +          _handleError(responseText, completer);
           } else {
             _logger.fine(responseText);
             final results = new DeleteResults.fromXml(responseText);
  
positive.code:     this._awsClient.get(uri).then((HttpClientResponse resp) {
        _readResponseAsString(resp).then((String responseText) {
          if (resp.reasonPhrase.toUpperCase() != 'OK') {
            completer.completeError(new ErrorResponse.fromXml(responseText));
          } else {
            final results = new ListBucketResult.fromXml(responseText);
            completer.complete(results);
  
negative.code:     resp.transform(UTF8.decoder).listen((String contents) => buffer.write(contents)).onDone(() => completer.complete(buffer.toString()));
      return completer.future;
    }
  
    static void _handleError(String responseText, Completer completer) {
      final err = new ErrorResponse.fromXml(responseText);
      _logger.warning(err.message);
      completer.completeError(err);
    }
  }