diff --git a/.github/workflows/ci_test_vector_java.yml b/.github/workflows/ci_test_vector_java.yml index ff839527e4..5fcf6e15b1 100644 --- a/.github/workflows/ci_test_vector_java.yml +++ b/.github/workflows/ci_test_vector_java.yml @@ -26,6 +26,7 @@ on: jobs: testJava: strategy: + fail-fast: false matrix: library: [TestVectors] java-version: [8, 11, 17, 19] diff --git a/DynamoDbEncryption/runtimes/java/src/test/sdkv2/com/amazonaws/services/dynamodbv2/datamodeling/sdkv2/encryption/providers/CachingMostRecentProviderTests.java b/DynamoDbEncryption/runtimes/java/src/test/sdkv2/com/amazonaws/services/dynamodbv2/datamodeling/sdkv2/encryption/providers/CachingMostRecentProviderTests.java index 783173895b..547c952276 100644 --- a/DynamoDbEncryption/runtimes/java/src/test/sdkv2/com/amazonaws/services/dynamodbv2/datamodeling/sdkv2/encryption/providers/CachingMostRecentProviderTests.java +++ b/DynamoDbEncryption/runtimes/java/src/test/sdkv2/com/amazonaws/services/dynamodbv2/datamodeling/sdkv2/encryption/providers/CachingMostRecentProviderTests.java @@ -173,8 +173,9 @@ public void testSingleVersion() throws InterruptedException { 0, store.getVersionFromMaterialDescription(eMat2.getMaterialDescription()) ); - // Let the TTL be exceeded - Thread.sleep(500); + // Let the TTL be exceeded; sleep must be > TTL (500ms) to reliably + // land in the grace period and trigger a cache refresh. + Thread.sleep(700); final EncryptionMaterials eMat3 = prov.getEncryptionMaterials(ctx); assertEquals(2, methodCalls.size()); assertEquals(1, (int) methodCalls.getOrDefault("query", 0)); // To find current version @@ -339,8 +340,9 @@ public void testTwoVersions() throws InterruptedException { "Expected no calls but was " + methodCalls.toString(), methodCalls.isEmpty() ); - // Let the TTL be exceeded - Thread.sleep(500); + // Let the TTL be exceeded; sleep must be > TTL (500ms) to reliably + // land in the grace period and trigger a cache refresh. + Thread.sleep(700); final EncryptionMaterials eMat3 = prov.getEncryptionMaterials(ctx); assertEquals(1, (int) methodCalls.getOrDefault("query", 0)); // To find current version @@ -495,8 +497,9 @@ public void testSingleVersionTwoMaterials() throws InterruptedException { store.getVersionFromMaterialDescription(eMat2_2.getMaterialDescription()) ); - // Let the TTL be exceeded - Thread.sleep(500); + // Let the TTL be exceeded; sleep must be > TTL (500ms) to reliably + // land in the grace period and trigger a cache refresh. + Thread.sleep(700); final EncryptionMaterials eMat3_1 = prov.getEncryptionMaterials(ctx1); assertEquals(2, methodCalls.size()); assertEquals(1, (int) methodCalls.get("query")); // To find current version