# File lib/aws/base_client.rb, line 274
    def populate_error response

      # clear out a previous error
      response.error = nil
      status = response.http_response.status
      code = nil
      code = xml_error_grammar.parse(response.http_response.body).code if
        xml_error_response?(response)
      

      case
      when response.timeout?
        response.error = Timeout::Error.new

      when code
        response.error =
          service_module::Errors.error_class(code).new(response.http_request,
                                                       response.http_response)
      when status >= 500
        response.error =
          Errors::ServerError.new(response.http_request, response.http_response)

      when status >= 300
        response.error =
          Errors::ClientError.new(response.http_request, response.http_response)
      end

    end