Skip to content

Commit 443f080

Browse files
committed
fixup! STF-322: Document transport-failure retry in README and CHANGELOG
1 parent f17c1f6 commit 443f080

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,8 @@ CHANGELOG
77
* Added `FAT_ZEBRA` to the `Payment.Processor` enum.
88
* Added `CLEAR` to the `TransactionReport.Tag` enum for use with the Report
99
Transaction API.
10-
* Added `WebServiceClient.Builder.maxRetries(int)` to configure transport-
11-
failure retry behavior. Defaults to 1 (one retry on transient transport
12-
errors such as connection reset, broken pipe, EOF, or closed channel).
13-
Set to 0 to disable. `HttpTimeoutException` (covering both request-phase
14-
and connect-phase timeouts), `InterruptedIOException`, and HTTP 4xx/5xx
15-
responses are never retried.
10+
* Added `WebServiceClient.Builder.maxRetries(int)` to bound transport-failure
11+
retries (default 1; set 0 to disable). See the README for retry semantics.
1612

1713
4.2.0 (2026-02-26)
1814
------------------

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,18 @@ half-closed connections, the JDK reports the failure as a `Connection reset`,
120120

121121
To smooth over these intermittent transport failures, the SDK retries once
122122
by default. Any transport-level `IOException` raised by the underlying HTTP
123-
send is retried, with two exceptions:
123+
send is retried, with the following exclusions:
124124

125125
* `HttpTimeoutException` — a request-phase timeout. Connect-phase timeouts
126126
(`HttpConnectTimeoutException`) are also excluded because they extend
127127
`HttpTimeoutException`. The SDK honors the timeouts you configure.
128128
* `InterruptedIOException` — the calling thread was interrupted; the SDK
129129
honors the cancellation rather than override it.
130+
* Typically deterministic failures: `UnknownHostException`,
131+
`ConnectException`, `SSLHandshakeException`, `SSLPeerUnverifiedException`.
132+
Retrying these would just delay surfacing a config bug.
133+
* If the calling thread is already interrupted when the predicate runs, the
134+
retry is short-circuited regardless of the exception type.
130135

131136
HTTP 4xx and 5xx responses are not retried — they are returned as
132137
`HttpResponse` objects (not `IOException`s) and surfaced through the existing

0 commit comments

Comments
 (0)