This is an automated email from the ASF dual-hosted git repository.
absurdfarce pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/cassandra-java-driver.git
The following commit(s) were added to refs/heads/4.x by this push:
new 204dd0932 CASSJAVA-40: Driver testing against Java 21 patch by Jane
He; reviewed by Bret McGuire for CASSJAVA-40
204dd0932 is described below
commit 204dd09329a073043b5b7cc170a9850e270c5a63
Author: janehe <[email protected]>
AuthorDate: Mon Mar 31 13:24:31 2025 -0700
CASSJAVA-40: Driver testing against Java 21
patch by Jane He; reviewed by Bret McGuire for CASSJAVA-40
---
Jenkinsfile-asf | 4 ++--
.../datastax/oss/driver/internal/core/util/ArrayUtils.java | 3 ++-
.../oss/driver/internal/core/cql/QueryTraceFetcherTest.java | 2 +-
.../oss/driver/internal/core/util/ArrayUtilsTest.java | 4 ++--
pom.xml | 13 +++++++++++++
5 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/Jenkinsfile-asf b/Jenkinsfile-asf
index 0217d0455..d63185854 100644
--- a/Jenkinsfile-asf
+++ b/Jenkinsfile-asf
@@ -35,7 +35,7 @@ pipeline {
axes {
axis {
name 'TEST_JAVA_VERSION'
- values '[email protected]', '[email protected]',
'openjdk@17'
+ values '[email protected]', '[email protected]',
'openjdk@17', '[email protected]'
}
axis {
name 'SERVER_VERSION'
@@ -67,7 +67,7 @@ pipeline {
def executeTests() {
def testJavaMajorVersion = (TEST_JAVA_VERSION =~ /@(?:1\.)?(\d+)/)[0][1]
sh """
- container_id=\$(docker run -td -e
TEST_JAVA_VERSION=${TEST_JAVA_VERSION} -e SERVER_VERSION=${SERVER_VERSION} -e
TEST_JAVA_MAJOR_VERSION=${testJavaMajorVersion} -v
\$(pwd):/home/docker/cassandra-java-driver
apache.jfrog.io/cassan-docker/apache/cassandra-java-driver-testing-ubuntu2204
'sleep 2h')
+ container_id=\$(docker run -td -e
TEST_JAVA_VERSION=${TEST_JAVA_VERSION} -e SERVER_VERSION=${SERVER_VERSION} -e
TEST_JAVA_MAJOR_VERSION=${testJavaMajorVersion} -v
\$(pwd):/home/docker/cassandra-java-driver
janehe158/cassandra-java-driver-dev-env 'sleep 2h')
docker exec --user root \$container_id bash -c \"sudo bash
/home/docker/cassandra-java-driver/ci/create-user.sh docker \$(id -u) \$(id -g)
/home/docker/cassandra-java-driver\"
docker exec --user docker \$container_id
'./cassandra-java-driver/ci/run-tests.sh'
( nohup docker stop \$container_id >/dev/null 2>/dev/null & )
diff --git
a/core/src/main/java/com/datastax/oss/driver/internal/core/util/ArrayUtils.java
b/core/src/main/java/com/datastax/oss/driver/internal/core/util/ArrayUtils.java
index f5fcb98e8..490b1dc7d 100644
---
a/core/src/main/java/com/datastax/oss/driver/internal/core/util/ArrayUtils.java
+++
b/core/src/main/java/com/datastax/oss/driver/internal/core/util/ArrayUtils.java
@@ -18,6 +18,7 @@
package com.datastax.oss.driver.internal.core.util;
import edu.umd.cs.findbugs.annotations.NonNull;
+import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class ArrayUtils {
@@ -77,7 +78,7 @@ public class ArrayUtils {
* Fisher-Yates shuffle</a>
*/
public static <ElementT> void shuffleHead(
- @NonNull ElementT[] elements, int n, @NonNull ThreadLocalRandom random) {
+ @NonNull ElementT[] elements, int n, @NonNull Random random) {
if (n > elements.length) {
throw new ArrayIndexOutOfBoundsException(
String.format(
diff --git
a/core/src/test/java/com/datastax/oss/driver/internal/core/cql/QueryTraceFetcherTest.java
b/core/src/test/java/com/datastax/oss/driver/internal/core/cql/QueryTraceFetcherTest.java
index b355e0fc9..dc238775b 100644
---
a/core/src/test/java/com/datastax/oss/driver/internal/core/cql/QueryTraceFetcherTest.java
+++
b/core/src/test/java/com/datastax/oss/driver/internal/core/cql/QueryTraceFetcherTest.java
@@ -79,7 +79,7 @@ public class QueryTraceFetcherTest {
@Mock private NettyOptions nettyOptions;
@Mock private EventExecutorGroup adminEventExecutorGroup;
@Mock private EventExecutor eventExecutor;
- @Mock private InetAddress address;
+ private InetAddress address = InetAddress.getLoopbackAddress();
@Captor private ArgumentCaptor<SimpleStatement> statementCaptor;
diff --git
a/core/src/test/java/com/datastax/oss/driver/internal/core/util/ArrayUtilsTest.java
b/core/src/test/java/com/datastax/oss/driver/internal/core/util/ArrayUtilsTest.java
index c2a7fb703..c2df6449f 100644
---
a/core/src/test/java/com/datastax/oss/driver/internal/core/util/ArrayUtilsTest.java
+++
b/core/src/test/java/com/datastax/oss/driver/internal/core/util/ArrayUtilsTest.java
@@ -22,7 +22,7 @@ import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import java.util.concurrent.ThreadLocalRandom;
+import java.util.Random;
import org.junit.Test;
public class ArrayUtilsTest {
@@ -86,7 +86,7 @@ public class ArrayUtilsTest {
@Test
public void should_shuffle_head() {
String[] array = {"a", "b", "c", "d", "e"};
- ThreadLocalRandom random = mock(ThreadLocalRandom.class);
+ Random random = mock(Random.class);
when(random.nextInt(anyInt()))
.thenAnswer(
(invocation) -> {
diff --git a/pom.xml b/pom.xml
index 3fd2d1347..088d7b075 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1016,6 +1016,19 @@ limitations under the License.]]></inlineHeader>
<mockitoopens.argline>--add-opens
java.base/jdk.internal.util.random=ALL-UNNAMED</mockitoopens.argline>
</properties>
</profile>
+ <profile>
+ <!-- workarounds for running tests with JDK21 -->
+ <id>test-jdk-21</id>
+ <activation>
+ <jdk>[21,)</jdk>
+ </activation>
+ <properties>
+ <!-- for DriverBlockHoundIntegrationIT when using JDK 13+, see
https://github.com/reactor/BlockHound/issues/33 -->
+
<blockhound.argline>-XX:+AllowRedefinitionToAddDeleteMethods</blockhound.argline>
+ <!-- allow deep reflection for mockito when using JDK 17+, see
https://stackoverflow.com/questions/70993863/mockito-can-not-mock-random-in-java-17
-->
+
<mockitoopens.argline>--add-opens=java.base/jdk.internal.util.random=ALL-UNNAMED</mockitoopens.argline>
+ </properties>
+ </profile>
</profiles>
<licenses>
<license>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]