-
Notifications
You must be signed in to change notification settings - Fork 27
Retries
MantaClient
can automatically retry a request depending on whether the object content is "repeatable." Users of Apache HttpClient (or enterprising individuals which delve into the java-manta source) will recognize this terminology from section 1.1.4.1 of the HttpClient documentation. To summarize the relationship between repeatable entities and request retries, certain classes of errors are simply cannot be retried and certain request entities are incapable of being retried. Both conditions must be satisfied for a request to be retried automatically as described by the following tables:
Entity | Repeatable |
---|---|
byte[] | yes |
String | yes |
File | yes |
InputStream | no |
OutputStream | no |
Error | Retryable |
---|---|
Initial Connection (unknown host, SSL, etc.) | no |
Thread interruption (InterruptedIOException) | no |
Any error occuring during an encrypted Multipart Upload | no |
Transient errors (Connection reset, etc.) | yes |
For an automatic retry to occur both conditions must be satisfied. Once a retry is triggered, the retry counter for that request will be incremented and it will be sent again in its entirety. Each decision to retry takes into account the number of attempts so far and the failure that caused the current failure.