|
18 | 18 |
|
19 | 19 | import java.net.URI; |
20 | 20 | import java.util.List; |
21 | | -import java.util.Optional; |
22 | 21 | import java.util.stream.Collectors; |
23 | 22 |
|
24 | 23 | import static java.text.MessageFormat.format; |
@@ -91,26 +90,30 @@ public void beforeAll(ExtensionContext context) { |
91 | 90 | context.getTestClass().map(Class::getSimpleName).orElse("unknown"), |
92 | 91 | queueNameSuffix); |
93 | 92 | var truncatedQueueName = queueName.substring(0, Math.min(80, queueName.length())); |
94 | | - queueUrl = |
95 | | - getQueueUrlFor(truncatedQueueName).orElseGet(() -> createQueue(truncatedQueueName)); |
96 | | - sqsClient.purgeQueue(PurgeQueueRequest.builder().queueUrl(queueUrl).build()); |
97 | | - } |
98 | 93 |
|
99 | | - private Optional<String> getQueueUrlFor(String queueName) { |
| 94 | + // Always create a fresh queue to handle container recreation |
| 95 | + queueUrl = createQueue(truncatedQueueName); |
| 96 | + |
| 97 | + // Clear any existing messages |
100 | 98 | try { |
101 | | - return Optional.of( |
102 | | - sqsClient |
103 | | - .getQueueUrl(GetQueueUrlRequest.builder().queueName(queueName).build()) |
104 | | - .toString()); |
105 | | - } catch (QueueDoesNotExistException ignored) { |
106 | | - return Optional.empty(); |
| 99 | + sqsClient.purgeQueue(PurgeQueueRequest.builder().queueUrl(queueUrl).build()); |
| 100 | + } catch (Exception e) { |
| 101 | + // Ignore purge errors as queue might be newly created |
107 | 102 | } |
108 | 103 | } |
109 | 104 |
|
110 | 105 | private String createQueue(String queueName) { |
111 | | - return sqsClient |
112 | | - .createQueue(CreateQueueRequest.builder().queueName(queueName).build()) |
113 | | - .queueUrl(); |
| 106 | + try { |
| 107 | + // Try to get existing queue first |
| 108 | + return sqsClient |
| 109 | + .getQueueUrl(GetQueueUrlRequest.builder().queueName(queueName).build()) |
| 110 | + .queueUrl(); |
| 111 | + } catch (QueueDoesNotExistException e) { |
| 112 | + // Create new queue if it doesn't exist |
| 113 | + return sqsClient |
| 114 | + .createQueue(CreateQueueRequest.builder().queueName(queueName).build()) |
| 115 | + .queueUrl(); |
| 116 | + } |
114 | 117 | } |
115 | 118 |
|
116 | 119 | private List<Message> getMessages(int numberOfMessages) { |
|
0 commit comments