From adda920c9cd24ca10b5462181294440ca9dc8f11 Mon Sep 17 00:00:00 2001 From: "Stephan.Praetsch" Date: Thu, 13 Jun 2024 08:36:32 +0200 Subject: [PATCH] remove AlreadyAcknowledgedException, return void instead of ChangeMessageVisibilityResult --- .../AlreadyAcknowledgedException.java | 4 ---- .../message/handling/MessageWrapper.java | 7 +++--- .../visibility/VisibilityTimeoutExtender.java | 24 +++++++++---------- 3 files changed, 14 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/com/mercateo/sqs/utils/message/handling/AlreadyAcknowledgedException.java diff --git a/src/main/java/com/mercateo/sqs/utils/message/handling/AlreadyAcknowledgedException.java b/src/main/java/com/mercateo/sqs/utils/message/handling/AlreadyAcknowledgedException.java deleted file mode 100644 index a18adf6..0000000 --- a/src/main/java/com/mercateo/sqs/utils/message/handling/AlreadyAcknowledgedException.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.mercateo.sqs.utils.message.handling; - -public class AlreadyAcknowledgedException extends RuntimeException { -} diff --git a/src/main/java/com/mercateo/sqs/utils/message/handling/MessageWrapper.java b/src/main/java/com/mercateo/sqs/utils/message/handling/MessageWrapper.java index 23414f1..8e8ead8 100644 --- a/src/main/java/com/mercateo/sqs/utils/message/handling/MessageWrapper.java +++ b/src/main/java/com/mercateo/sqs/utils/message/handling/MessageWrapper.java @@ -2,7 +2,6 @@ import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.model.ChangeMessageVisibilityRequest; -import com.amazonaws.services.sqs.model.ChangeMessageVisibilityResult; import io.awspring.cloud.messaging.listener.Acknowledgment; @@ -43,10 +42,10 @@ public synchronized void acknowledge() { acknowledged.set(true); } - public synchronized ChangeMessageVisibilityResult changeMessageVisibility(AmazonSQS sqsClient, ChangeMessageVisibilityRequest request) { + public synchronized void changeMessageVisibility(AmazonSQS sqsClient, ChangeMessageVisibilityRequest request) { if (acknowledged.get()) { - throw new AlreadyAcknowledgedException(); + return; } - return sqsClient.changeMessageVisibility(request); + sqsClient.changeMessageVisibility(request); } } diff --git a/src/main/java/com/mercateo/sqs/utils/visibility/VisibilityTimeoutExtender.java b/src/main/java/com/mercateo/sqs/utils/visibility/VisibilityTimeoutExtender.java index ebadd71..98b2b77 100644 --- a/src/main/java/com/mercateo/sqs/utils/visibility/VisibilityTimeoutExtender.java +++ b/src/main/java/com/mercateo/sqs/utils/visibility/VisibilityTimeoutExtender.java @@ -1,12 +1,12 @@ /** * Copyright © 2017 Mercateo AG (http://www.mercateo.com) - * + *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,10 +18,8 @@ import com.amazonaws.AmazonServiceException; import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.model.ChangeMessageVisibilityRequest; -import com.amazonaws.services.sqs.model.ChangeMessageVisibilityResult; import com.github.rholder.retry.Retryer; import com.github.rholder.retry.RetryerBuilder; -import com.mercateo.sqs.utils.message.handling.AlreadyAcknowledgedException; import com.mercateo.sqs.utils.message.handling.ErrorHandlingStrategy; import com.mercateo.sqs.utils.message.handling.MessageWrapper; @@ -42,7 +40,7 @@ public class VisibilityTimeoutExtender implements Runnable { private final ErrorHandlingStrategy errorHandlingStrategy; - private final Retryer retryer; + private final Retryer retryer; VisibilityTimeoutExtender(@NonNull AmazonSQS sqsClient, @NonNull Duration newVisibilityTimeout, @NonNull MessageWrapper messageWrapper, @NonNull String queueUrl, @@ -52,7 +50,7 @@ public class VisibilityTimeoutExtender implements Runnable { this.messageWrapper = messageWrapper; this.errorHandlingStrategy = errorHandlingStrategy; this.retryer = RetryerBuilder - . newBuilder() + .newBuilder() .retryIfException(t -> (t.getCause() instanceof UnknownHostException)) .withWaitStrategy(retryStrategy.getRetryWaitStrategy()) .withStopStrategy(retryStrategy.getRetryStopStrategy()) @@ -60,7 +58,7 @@ public class VisibilityTimeoutExtender implements Runnable { request = new ChangeMessageVisibilityRequest().withQueueUrl(queueUrl).withReceiptHandle( messageWrapper.getReceiptHandle()).withVisibilityTimeout( - timeoutInSeconds(newVisibilityTimeout)); + timeoutInSeconds(newVisibilityTimeout)); } private Integer timeoutInSeconds(Duration timeout) { @@ -70,11 +68,11 @@ private Integer timeoutInSeconds(Duration timeout) { @Override public void run() { try { - retryer.call(() -> messageWrapper.changeMessageVisibility(sqsClient, request)); + retryer.call(() -> { + messageWrapper.changeMessageVisibility(sqsClient, request); + return null; + }); } catch (Exception e) { - if (e.getCause() instanceof AlreadyAcknowledgedException) { - return; - } if (e.getCause() instanceof AmazonServiceException) { errorHandlingStrategy.handleExtendVisibilityTimeoutException((AmazonServiceException) e.getCause(), messageWrapper.getMessage()); } else {