Skip to content

Commit 5779cab

Browse files
committed
Fix code quality and format
1 parent cd9e57a commit 5779cab

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

src/main/java/io/github/sashirestela/cleverclient/retry/RetryableRequest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ private <T> void executeAsyncAttempt(Supplier<Object> operation,
8383

8484
private boolean isRetryable(Throwable exception) {
8585
exception = (exception instanceof CompletionException) ? exception.getCause() : exception;
86-
if (exception == null) return false;
86+
if (exception == null)
87+
return false;
8788
Throwable theException = (exception instanceof CleverClientException) ? exception.getCause() : exception;
8889
if (theException != null) {
8990
return Arrays.stream(config.getRetryableExceptions())
@@ -102,16 +103,15 @@ private long calculateDelayWithJitter(int attempt) {
102103
double multiplier = Math.pow(config.getBackoffMultiplier(), attempt - 1.0);
103104
long baseDelay = (long) (config.getInitialDelayMs() * multiplier);
104105
baseDelay = Math.min(baseDelay, config.getMaxDelayMs());
105-
106106
if (config.getJitterFactor() > 0) {
107-
double jitterRange = baseDelay * config.getJitterFactor();
107+
long jitterRange = (long) (baseDelay * config.getJitterFactor());
108108
// Generate random jitter between -jitterRange/2 and +jitterRange/2
109-
long jitter = (long) ((random.nextDouble() - 0.5) * jitterRange);
109+
long halfRange = jitterRange / 2;
110+
long jitter = -halfRange + (random.nextLong() % (halfRange + 1));
110111
baseDelay = Math.max(0, baseDelay + jitter);
111112
// Ensure we don't exceed maxDelayMs even with jitter
112113
baseDelay = Math.min(baseDelay, config.getMaxDelayMs());
113114
}
114-
115115
return baseDelay;
116116
}
117117

src/test/java/io/github/sashirestela/cleverclient/http/HttpProcessorTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,8 @@ default void shouldReturnAnObjectAsyncWhenIsPostMethodAndBodyIsEmpty() throws IO
420420
default void shouldReturnAnObjectSyncWhenConfiguredRetry() throws IOException, InterruptedException {
421421
setMocksForString(SyncType.SYNC, "{\"id\":100,\"description\":\"Description\",\"active\":true}");
422422

423-
var service = getHttpProcessor(new RetryableRequest(RetryConfig.defaultValues())).createProxy(ITest.SyncService.class);
423+
var service = getHttpProcessor(new RetryableRequest(RetryConfig.defaultValues()))
424+
.createProxy(ITest.SyncService.class);
424425
var actualDemo = service.getDemo(100);
425426
var expectedDemo = new ITest.Demo(100, "Description", true);
426427

@@ -431,7 +432,8 @@ default void shouldReturnAnObjectSyncWhenConfiguredRetry() throws IOException, I
431432
default void shouldReturnAnObjectAsyncWhenConfiguredRetry() throws IOException, InterruptedException {
432433
setMocksForString(SyncType.ASYNC, "{\"id\":100,\"description\":\"Description\",\"active\":true}");
433434

434-
var service = getHttpProcessor(new RetryableRequest(RetryConfig.defaultValues())).createProxy(ITest.AsyncService.class);
435+
var service = getHttpProcessor(new RetryableRequest(RetryConfig.defaultValues()))
436+
.createProxy(ITest.AsyncService.class);
435437
var actualDemo = service.getDemo(100).join();
436438
var expectedDemo = new ITest.Demo(100, "Description", true);
437439

0 commit comments

Comments
 (0)