5151
5252/**
5353 * Amazon SQS Extended Async Client extends the functionality of Amazon Async SQS
54- * client. All service calls made using this client are asynchronous, and will return
54+ * client.
55+ *
56+ * <p>
57+ * All service calls made using this client are asynchronous, and will return
5558 * immediately with a {@link CompletableFuture} that completes when the operation
56- * completes or when an exception is thrown.
59+ * completes or when an exception is thrown. Argument validation exceptions are thrown
60+ * immediately, and not through the future.
61+ * </p>
5762 *
5863 * <p>
5964 * The Amazon SQS extended client enables sending and receiving large messages
@@ -85,7 +90,9 @@ public class AmazonSQSExtendedAsyncClient extends AmazonSQSExtendedAsyncClientBa
8590 * <p>
8691 * All service calls made using this client are asynchronous, and will return
8792 * immediately with a {@link CompletableFuture} that completes when the operation
88- * completes or when an exception is thrown.
93+ * completes or when an exception is thrown. Argument validation exceptions are thrown
94+ * immediately, and not through the future.
95+ * </p>
8996 *
9097 * @param sqsClient
9198 * The Amazon SQS async client to use to connect to Amazon SQS.
@@ -102,7 +109,9 @@ public AmazonSQSExtendedAsyncClient(SqsAsyncClient sqsClient) {
102109 * <p>
103110 * All service calls made using this client are asynchronous, and will return
104111 * immediately with a {@link CompletableFuture} that completes when the operation
105- * completes or when an exception is thrown.
112+ * completes or when an exception is thrown. Argument validation exceptions are thrown
113+ * immediately, and not through the future.
114+ * </p>
106115 *
107116 * @param sqsClient
108117 * The Amazon SQS async client to use to connect to Amazon SQS.
@@ -130,9 +139,7 @@ public CompletableFuture<SendMessageResponse> sendMessage(SendMessageRequest sen
130139 if (sendMessageRequest == null ) {
131140 String errorMessage = "sendMessageRequest cannot be null." ;
132141 LOG .error (errorMessage );
133- CompletableFuture <SendMessageResponse > futureEx = new CompletableFuture <>();
134- futureEx .completeExceptionally (SdkClientException .create (errorMessage ));
135- return futureEx ;
142+ throw SdkClientException .create (errorMessage );
136143 }
137144
138145 SendMessageRequest .Builder sendMessageRequestBuilder = sendMessageRequest .toBuilder ();
@@ -145,19 +152,11 @@ public CompletableFuture<SendMessageResponse> sendMessage(SendMessageRequest sen
145152 if (StringUtils .isEmpty (sendMessageRequest .messageBody ())) {
146153 String errorMessage = "messageBody cannot be null or empty." ;
147154 LOG .error (errorMessage );
148- CompletableFuture <SendMessageResponse > futureEx = new CompletableFuture <>();
149- futureEx .completeExceptionally (SdkClientException .create (errorMessage ));
150- return futureEx ;
155+ throw SdkClientException .create (errorMessage );
151156 }
152157
153158 //Check message attributes for ExtendedClient related constraints
154- try {
155- checkMessageAttributes (clientConfiguration .getPayloadSizeThreshold (), sendMessageRequest .messageAttributes ());
156- } catch (SdkClientException e ) {
157- CompletableFuture <SendMessageResponse > futureEx = new CompletableFuture <>();
158- futureEx .completeExceptionally (e );
159- return futureEx ;
160- }
159+ checkMessageAttributes (clientConfiguration .getPayloadSizeThreshold (), sendMessageRequest .messageAttributes ());
161160
162161 if (clientConfiguration .isAlwaysThroughS3 ()
163162 || isLarge (clientConfiguration .getPayloadSizeThreshold (), sendMessageRequest )) {
@@ -178,10 +177,7 @@ public CompletableFuture<ReceiveMessageResponse> receiveMessage(ReceiveMessageRe
178177 if (receiveMessageRequest == null ) {
179178 String errorMessage = "receiveMessageRequest cannot be null." ;
180179 LOG .error (errorMessage );
181-
182- CompletableFuture <ReceiveMessageResponse > future = new CompletableFuture <>();
183- future .completeExceptionally (SdkClientException .create (errorMessage ));
184- return future ;
180+ throw SdkClientException .create (errorMessage );
185181 }
186182
187183 ReceiveMessageRequest .Builder receiveMessageRequestBuilder = receiveMessageRequest .toBuilder ();
@@ -266,10 +262,7 @@ public CompletableFuture<DeleteMessageResponse> deleteMessage(DeleteMessageReque
266262 if (deleteMessageRequest == null ) {
267263 String errorMessage = "deleteMessageRequest cannot be null." ;
268264 LOG .error (errorMessage );
269-
270- CompletableFuture <DeleteMessageResponse > future = new CompletableFuture <>();
271- future .completeExceptionally (SdkClientException .create (errorMessage ));
272- return future ;
265+ throw SdkClientException .create (errorMessage );
273266 }
274267
275268 DeleteMessageRequest .Builder deleteMessageRequestBuilder = deleteMessageRequest .toBuilder ();
@@ -332,9 +325,7 @@ public CompletableFuture<SendMessageBatchResponse> sendMessageBatch(
332325 if (sendMessageBatchRequestIn == null ) {
333326 String errorMessage = "sendMessageBatchRequest cannot be null." ;
334327 LOG .error (errorMessage );
335- CompletableFuture <SendMessageBatchResponse > futureEx = new CompletableFuture <>();
336- futureEx .completeExceptionally (SdkClientException .create (errorMessage ));
337- return futureEx ;
328+ throw SdkClientException .create (errorMessage );
338329 }
339330
340331 SendMessageBatchRequest .Builder sendMessageBatchRequestBuilder = sendMessageBatchRequestIn .toBuilder ();
@@ -350,13 +341,7 @@ public CompletableFuture<SendMessageBatchResponse> sendMessageBatch(
350341 boolean hasS3Entries = false ;
351342 for (SendMessageBatchRequestEntry entry : sendMessageBatchRequest .entries ()) {
352343 //Check message attributes for ExtendedClient related constraints
353- try {
354- checkMessageAttributes (clientConfiguration .getPayloadSizeThreshold (), entry .messageAttributes ());
355- } catch (SdkClientException e ) {
356- CompletableFuture <SendMessageBatchResponse > futureEx = new CompletableFuture <>();
357- futureEx .completeExceptionally (e );
358- return futureEx ;
359- }
344+ checkMessageAttributes (clientConfiguration .getPayloadSizeThreshold (), entry .messageAttributes ());
360345
361346 if (clientConfiguration .isAlwaysThroughS3 ()
362347 || isLarge (clientConfiguration .getPayloadSizeThreshold (), entry )) {
@@ -394,9 +379,7 @@ public CompletableFuture<DeleteMessageBatchResponse> deleteMessageBatch(
394379 if (deleteMessageBatchRequest == null ) {
395380 String errorMessage = "deleteMessageBatchRequest cannot be null." ;
396381 LOG .error (errorMessage );
397- CompletableFuture <DeleteMessageBatchResponse > futureEx = new CompletableFuture <>();
398- futureEx .completeExceptionally (SdkClientException .create (errorMessage ));
399- return futureEx ;
382+ throw SdkClientException .create (errorMessage );
400383 }
401384
402385 DeleteMessageBatchRequest .Builder deleteMessageBatchRequestBuilder = deleteMessageBatchRequest .toBuilder ();
@@ -460,9 +443,7 @@ public CompletableFuture<PurgeQueueResponse> purgeQueue(PurgeQueueRequest purgeQ
460443 if (purgeQueueRequest == null ) {
461444 String errorMessage = "purgeQueueRequest cannot be null." ;
462445 LOG .error (errorMessage );
463- CompletableFuture <PurgeQueueResponse > futureEx = new CompletableFuture <>();
464- futureEx .completeExceptionally (SdkClientException .create (errorMessage ));
465- return futureEx ;
446+ throw SdkClientException .create (errorMessage );
466447 }
467448
468449 PurgeQueueRequest .Builder purgeQueueRequestBuilder = purgeQueueRequest .toBuilder ();
0 commit comments