From c11d5f2f7663d395e989abbd8456287777ee3d64 Mon Sep 17 00:00:00 2001 From: John Viegas Date: Fri, 15 May 2026 21:07:28 -0700 Subject: [PATCH 1/7] fix(dynamodb): Add TCP keep-alive permissions to SecurityManager test policy for Apache 5 compatibility. Apache 5.6 sets TCP_KEEPIDLE/INTERVAL/COUNT by default which requires jdk.net.NetworkPermission. --- .../services/dynamodb/security-manager-integ-test.policy | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/dynamodb/src/test/resources/software/amazon/awssdk/services/dynamodb/security-manager-integ-test.policy b/services/dynamodb/src/test/resources/software/amazon/awssdk/services/dynamodb/security-manager-integ-test.policy index 3737c5650c87..dce94de7db78 100644 --- a/services/dynamodb/src/test/resources/software/amazon/awssdk/services/dynamodb/security-manager-integ-test.policy +++ b/services/dynamodb/src/test/resources/software/amazon/awssdk/services/dynamodb/security-manager-integ-test.policy @@ -6,6 +6,11 @@ grant { permission "javax.net.ssl.SSLPermission" "setDefaultSSLContext"; permission "java.net.SocketPermission" "*", "connect,resolve"; + // Needed for Apache HTTP Client 5 TCP keep-alive socket options + permission jdk.net.NetworkPermission "setOption.TCP_KEEPIDLE"; + permission jdk.net.NetworkPermission "setOption.TCP_KEEPINTERVAL"; + permission jdk.net.NetworkPermission "setOption.TCP_KEEPCOUNT"; + // Needed for test to remove the security manager permission java.lang.RuntimePermission "setSecurityManager"; From 0250c92599558527a8cb2381f5871b27d38ac1dd Mon Sep 17 00:00:00 2001 From: John Viegas Date: Sat, 16 May 2026 12:41:18 -0700 Subject: [PATCH 2/7] Fix ResponseInputStreamTimeoutIntegrationTest to update it to Apache5 exception assertion --- .../s3/ResponseInputStreamTimeoutIntegrationTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/ResponseInputStreamTimeoutIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/ResponseInputStreamTimeoutIntegrationTest.java index 922078a2a127..ae3744c84f28 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/ResponseInputStreamTimeoutIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/ResponseInputStreamTimeoutIntegrationTest.java @@ -21,7 +21,7 @@ import java.io.IOException; import java.time.Duration; -import org.apache.http.conn.ConnectionPoolTimeoutException; +import org.apache.hc.core5.http.ConnectionRequestTimeoutException; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; @@ -74,8 +74,8 @@ public void defaultTimeout_firstStreamNotConsumed_secondRequestTimesOut() { s3Client.getObject(getObjectRequest); assertThatThrownBy(() -> s3Client.getObject(getObjectRequest)) - .hasRootCauseInstanceOf(ConnectionPoolTimeoutException.class) - .hasMessageContaining("Timeout waiting for connection from pool"); + .hasRootCauseInstanceOf(ConnectionRequestTimeoutException.class) + .hasMessageContaining("Timeout deadline"); } @Test From 8e2bc0fd54a506af64de7d06663d816aeee14d81 Mon Sep 17 00:00:00 2001 From: John Viegas Date: Sat, 16 May 2026 17:04:59 -0700 Subject: [PATCH 3/7] Remove apache5-client test scope from s3/pom.xml to restore runtime transitivity. The test scope override prevented downstream modules like s3-transfer-manager from discovering the HTTP client via SPI --- services/s3/pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/services/s3/pom.xml b/services/s3/pom.xml index 24739bd9c2e8..dd149c9a155b 100644 --- a/services/s3/pom.xml +++ b/services/s3/pom.xml @@ -209,12 +209,6 @@ ${awsjavasdk.version} test - - software.amazon.awssdk - apache5-client - ${awsjavasdk.version} - test - io.netty netty-transport From 11e36e1e21cccc4175114b57ab1eb843864df65b Mon Sep 17 00:00:00 2001 From: John Viegas Date: Sun, 17 May 2026 22:01:57 -0700 Subject: [PATCH 4/7] Dumy commit to trigger integ test --- .../awssdk/services/dynamodb/security-manager-integ-test.policy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/dynamodb/src/test/resources/software/amazon/awssdk/services/dynamodb/security-manager-integ-test.policy b/services/dynamodb/src/test/resources/software/amazon/awssdk/services/dynamodb/security-manager-integ-test.policy index dce94de7db78..eadcb8739209 100644 --- a/services/dynamodb/src/test/resources/software/amazon/awssdk/services/dynamodb/security-manager-integ-test.policy +++ b/services/dynamodb/src/test/resources/software/amazon/awssdk/services/dynamodb/security-manager-integ-test.policy @@ -6,7 +6,7 @@ grant { permission "javax.net.ssl.SSLPermission" "setDefaultSSLContext"; permission "java.net.SocketPermission" "*", "connect,resolve"; - // Needed for Apache HTTP Client 5 TCP keep-alive socket options + // Needed for Apache5 HTTP Client TCP keep-alive socket options permission jdk.net.NetworkPermission "setOption.TCP_KEEPIDLE"; permission jdk.net.NetworkPermission "setOption.TCP_KEEPINTERVAL"; permission jdk.net.NetworkPermission "setOption.TCP_KEEPCOUNT"; From 8a9a8d10581827c51dd1d7a20e0fd913e6be9917 Mon Sep 17 00:00:00 2001 From: John Viegas Date: Mon, 18 May 2026 09:18:47 -0700 Subject: [PATCH 5/7] because we use org.apache.hc.core5.http.ConnectionRequestTimeoutException in ResponseInputStreamTimeoutIntegrationTest --- services/s3/pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/s3/pom.xml b/services/s3/pom.xml index dd149c9a155b..24739bd9c2e8 100644 --- a/services/s3/pom.xml +++ b/services/s3/pom.xml @@ -209,6 +209,12 @@ ${awsjavasdk.version} test + + software.amazon.awssdk + apache5-client + ${awsjavasdk.version} + test + io.netty netty-transport From d47f09434dd81a1b78124d88540977867ad48898 Mon Sep 17 00:00:00 2001 From: John Viegas Date: Mon, 18 May 2026 10:17:00 -0700 Subject: [PATCH 6/7] Removing Apache5 specific execption from ResponseInputStreamTimeoutIntegrationTest and asserting just on error message --- .../services/s3/ResponseInputStreamTimeoutIntegrationTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/ResponseInputStreamTimeoutIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/ResponseInputStreamTimeoutIntegrationTest.java index ae3744c84f28..d32b49af28e5 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/ResponseInputStreamTimeoutIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/ResponseInputStreamTimeoutIntegrationTest.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.time.Duration; -import org.apache.hc.core5.http.ConnectionRequestTimeoutException; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; @@ -74,7 +73,6 @@ public void defaultTimeout_firstStreamNotConsumed_secondRequestTimesOut() { s3Client.getObject(getObjectRequest); assertThatThrownBy(() -> s3Client.getObject(getObjectRequest)) - .hasRootCauseInstanceOf(ConnectionRequestTimeoutException.class) .hasMessageContaining("Timeout deadline"); } From 4561b929949a1d471049aaf09419090f2c215a74 Mon Sep 17 00:00:00 2001 From: John Viegas Date: Mon, 18 May 2026 12:02:20 -0700 Subject: [PATCH 7/7] remove apache 5 as test dependency since it present as runtime --- services/s3/pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/services/s3/pom.xml b/services/s3/pom.xml index 24739bd9c2e8..dd149c9a155b 100644 --- a/services/s3/pom.xml +++ b/services/s3/pom.xml @@ -209,12 +209,6 @@ ${awsjavasdk.version} test - - software.amazon.awssdk - apache5-client - ${awsjavasdk.version} - test - io.netty netty-transport