Details

Description

observed with openstack-swift 1.8.1 ObjectApi.put()

if the server responds with a 4xx/5xx response, the put() call returns null for the etag

would it be more useful if there was an HttpResponseException were thrown, with the actual request, response, and response code available? as of now, the null response only indicates that an etag was not found in the response, not that the whole request failed

I observe that a failure to communicate (e.g. BackoffLimitedRetryHandler running through its retires) will result in an HttpResponseException

there may also be an issue with consistency – from perusing the AzureBlobClient and S3Client code it seems like an HttpException("did not receive ETag") would be thrown, and not a null etag

I would also propose that GETs report 4xx/5xx responses via HttpResponseException as well

I realize this is a major departure from existing behavior, perhaps this exception-reporting-on-error could be enabled via an override?