Skip to content

Commit f51ea96

Browse files
oschwaldclaude
andcommitted
STF-322: Restore interrupt flag in InterruptedException rewrap path
The existing catch (InterruptedException) blocks in reportTransaction() and responseFor() rewrap into MinFraudException without restoring the thread's interrupt status, silently swallowing the cancellation signal. Per Java's interruption protocol, code that catches InterruptedException without rethrowing it should re-set the flag so callers up the stack can observe the cancellation. This is an independent bug fix bundled into the STF-322 retry work because the retry feature exposes the path more often. Per project commit hygiene it lands as a separate commit so it can be cherry-picked or reverted on its own. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 7cca002 commit f51ea96

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

src/main/java/com/maxmind/minfraud/WebServiceClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ public void reportTransaction(TransactionReport transaction) throws IOException,
352352
maybeThrowException(response, uri);
353353
exhaustBody(response);
354354
} catch (InterruptedException e) {
355+
Thread.currentThread().interrupt();
355356
throw new MinFraudException("Interrupted sending request", e);
356357
} finally {
357358
if (response != null) {
@@ -373,6 +374,7 @@ private <T> T responseFor(String service, AbstractModel transaction, Class<T> cl
373374
response = sendWithRetry(request);
374375
return handleResponse(response, uri, cls);
375376
} catch (InterruptedException e) {
377+
Thread.currentThread().interrupt();
376378
throw new MinFraudException("Interrupted sending request", e);
377379
} finally {
378380
if (response != null) {

0 commit comments

Comments
 (0)