Skip to content

Commit b2fe89e

Browse files
authored
Flaky integ test where the SubscribeToShardIntegrationTest (#5949)
1 parent 302473f commit b2fe89e

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

services/kinesis/src/it/java/software/amazon/awssdk/services/kinesis/SubscribeToShardIntegrationTest.java

+16-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import software.amazon.awssdk.services.kinesis.model.ConsumerStatus;
4444
import software.amazon.awssdk.services.kinesis.model.PutRecordRequest;
4545
import software.amazon.awssdk.services.kinesis.model.Record;
46+
import software.amazon.awssdk.services.kinesis.model.ResourceInUseException;
4647
import software.amazon.awssdk.services.kinesis.model.ShardIteratorType;
4748
import software.amazon.awssdk.services.kinesis.model.StreamStatus;
4849
import software.amazon.awssdk.services.kinesis.model.SubscribeToShardEvent;
@@ -290,8 +291,22 @@ private static void waitForStreamToBeActive() {
290291
Waiter.run(() -> asyncClient.describeStream(r -> r.streamName(streamName)).join())
291292
.until(b -> b.streamDescription().streamStatus().equals(StreamStatus.ACTIVE))
292293
.orFailAfter(Duration.ofMinutes(5));
293-
}
294294

295+
// Additional verification to ensure stream is fully operational
296+
Waiter.run(() -> {
297+
try {
298+
asyncClient.listShards(r -> r.streamName(streamName)).join();
299+
return true;
300+
} catch (Exception e) {
301+
if (e.getCause() instanceof ResourceInUseException) {
302+
return false;
303+
}
304+
throw e;
305+
}
306+
})
307+
.until(Boolean::booleanValue)
308+
.orFailAfter(Duration.ofMinutes(1));
309+
}
295310

296311
/**
297312
* Puts a random record to the stream.

0 commit comments

Comments
 (0)