diff --git a/Jenkinsfile-datastax b/Jenkinsfile-datastax
index 602f33101ca..a21f98612c5 100644
--- a/Jenkinsfile-datastax
+++ b/Jenkinsfile-datastax
@@ -332,7 +332,8 @@ pipeline {
'1.8', // Oracle JDK version 1.8 (current default)
'openjdk@1.11', // OpenJDK version 11
'openjdk@1.17', // OpenJDK version 17
- 'openjdk@1.21' // OpenJDK version 21
+ 'openjdk@1.21', // OpenJDK version 21
+ 'openjdk@1.25' // OpenJDK version 25
],
description: '''JDK version to use for TESTING when running adhoc BUILD-AND-EXECUTE-TESTS builds. All builds will use JDK8 for building the driver
@@ -358,6 +359,10 @@ pipeline {
| openjdk@1.21 |
OpenJDK version 21 |
+
+ | openjdk@1.25 |
+ OpenJDK version 25 |
+
''')
booleanParam(
name: 'SKIP_SERIAL_ITS',
@@ -442,7 +447,8 @@ pipeline {
values '1.8', // jdk8
'openjdk@1.11', // jdk11
'openjdk@1.17', // jdk17
- 'openjdk@1.21' // jdk21
+ 'openjdk@1.21', // jdk21
+ 'openjdk@1.25' // jdk25
}
}
diff --git a/integration-tests/src/test/java/com/datastax/dse/driver/api/core/cql/continuous/ContinuousPagingIT.java b/integration-tests/src/test/java/com/datastax/dse/driver/api/core/cql/continuous/ContinuousPagingIT.java
index 45cc84f0719..9eeca8caaff 100644
--- a/integration-tests/src/test/java/com/datastax/dse/driver/api/core/cql/continuous/ContinuousPagingIT.java
+++ b/integration-tests/src/test/java/com/datastax/dse/driver/api/core/cql/continuous/ContinuousPagingIT.java
@@ -391,9 +391,23 @@ public void should_cancel_with_asynchronous_paging() {
CompletableFutures.getUninterruptibly(fetchNextPageFuture);
fail("Expected an execution exception since paging was cancelled.");
} catch (CancellationException e) {
- assertThat(e)
- .hasMessageContaining("Can't get more results")
- .hasMessageContaining("query was cancelled");
+ /**
+ * Since Java 25 has a breaking change in CompletableFuture.get()
+ * See: https://github.com/openjdk/jdk/commit/8a4315f833f3700075d65fae6bc566011c837c07
+ * CancellationException will be wrapped in a new CancellationException, with "get" as the message,
+ * and the original CancellationException as the cause
+ */
+
+ boolean exceptionHasBothMessages = e.getMessage() != null
+ && e.getMessage().contains("Can't get more results")
+ && e.getMessage().contains("query was cancelled");
+
+ boolean causeHasBothMessages = e.getCause() != null
+ && e.getCause().getMessage() != null
+ && e.getCause().getMessage().contains("Can't get more results")
+ && e.getCause().getMessage().contains("query was cancelled");
+
+ assertThat(exceptionHasBothMessages || causeHasBothMessages).isTrue();
}
int i = 0;
for (Row row : pagingResult.currentPage()) {
diff --git a/pom.xml b/pom.xml
index 7e7a2bbc5de..f07e550c7b5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -445,12 +445,12 @@
io.projectreactor.tools
blockhound
- 1.0.8.RELEASE
+ 1.0.16.RELEASE
io.projectreactor.tools
blockhound-junit-platform
- 1.0.8.RELEASE
+ 1.0.16.RELEASE
@@ -545,7 +545,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.10
+ 0.8.14
org.apache.felix
@@ -1068,6 +1068,19 @@ limitations under the License.]]>
--add-opens=java.base/jdk.internal.util.random=ALL-UNNAMED
+
+
+ test-jdk-25
+
+ [25,)
+
+
+
+ -XX:+AllowRedefinitionToAddDeleteMethods
+
+ --add-opens=java.base/jdk.internal.util.random=ALL-UNNAMED
+
+