Skip to content

Commit 204dd09

Browse files
SiyaoIsHidingabsurdfarce
authored andcommitted
CASSJAVA-40: Driver testing against Java 21
patch by Jane He; reviewed by Bret McGuire for CASSJAVA-40
1 parent c0cae9b commit 204dd09

File tree

5 files changed

+20
-6
lines changed

5 files changed

+20
-6
lines changed

Jenkinsfile-asf

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ pipeline {
3535
axes {
3636
axis {
3737
name 'TEST_JAVA_VERSION'
38-
values '[email protected]', '[email protected]', 'openjdk@17'
38+
3939
}
4040
axis {
4141
name 'SERVER_VERSION'
@@ -67,7 +67,7 @@ pipeline {
6767
def executeTests() {
6868
def testJavaMajorVersion = (TEST_JAVA_VERSION =~ /@(?:1\.)?(\d+)/)[0][1]
6969
sh """
70-
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')
70+
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')
7171
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\"
7272
docker exec --user docker \$container_id './cassandra-java-driver/ci/run-tests.sh'
7373
( nohup docker stop \$container_id >/dev/null 2>/dev/null & )

core/src/main/java/com/datastax/oss/driver/internal/core/util/ArrayUtils.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package com.datastax.oss.driver.internal.core.util;
1919

2020
import edu.umd.cs.findbugs.annotations.NonNull;
21+
import java.util.Random;
2122
import java.util.concurrent.ThreadLocalRandom;
2223

2324
public class ArrayUtils {
@@ -77,7 +78,7 @@ public static <ElementT> void shuffleHead(@NonNull ElementT[] elements, int n) {
7778
* Fisher-Yates shuffle</a>
7879
*/
7980
public static <ElementT> void shuffleHead(
80-
@NonNull ElementT[] elements, int n, @NonNull ThreadLocalRandom random) {
81+
@NonNull ElementT[] elements, int n, @NonNull Random random) {
8182
if (n > elements.length) {
8283
throw new ArrayIndexOutOfBoundsException(
8384
String.format(

core/src/test/java/com/datastax/oss/driver/internal/core/cql/QueryTraceFetcherTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public class QueryTraceFetcherTest {
7979
@Mock private NettyOptions nettyOptions;
8080
@Mock private EventExecutorGroup adminEventExecutorGroup;
8181
@Mock private EventExecutor eventExecutor;
82-
@Mock private InetAddress address;
82+
private InetAddress address = InetAddress.getLoopbackAddress();
8383

8484
@Captor private ArgumentCaptor<SimpleStatement> statementCaptor;
8585

core/src/test/java/com/datastax/oss/driver/internal/core/util/ArrayUtilsTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import static org.mockito.Mockito.mock;
2323
import static org.mockito.Mockito.when;
2424

25-
import java.util.concurrent.ThreadLocalRandom;
25+
import java.util.Random;
2626
import org.junit.Test;
2727

2828
public class ArrayUtilsTest {
@@ -86,7 +86,7 @@ public void should_not_bubble_down_when_target_index_lower() {
8686
@Test
8787
public void should_shuffle_head() {
8888
String[] array = {"a", "b", "c", "d", "e"};
89-
ThreadLocalRandom random = mock(ThreadLocalRandom.class);
89+
Random random = mock(Random.class);
9090
when(random.nextInt(anyInt()))
9191
.thenAnswer(
9292
(invocation) -> {

pom.xml

+13
Original file line numberDiff line numberDiff line change
@@ -1016,6 +1016,19 @@ limitations under the License.]]></inlineHeader>
10161016
<mockitoopens.argline>--add-opens java.base/jdk.internal.util.random=ALL-UNNAMED</mockitoopens.argline>
10171017
</properties>
10181018
</profile>
1019+
<profile>
1020+
<!-- workarounds for running tests with JDK21 -->
1021+
<id>test-jdk-21</id>
1022+
<activation>
1023+
<jdk>[21,)</jdk>
1024+
</activation>
1025+
<properties>
1026+
<!-- for DriverBlockHoundIntegrationIT when using JDK 13+, see https://github.com/reactor/BlockHound/issues/33 -->
1027+
<blockhound.argline>-XX:+AllowRedefinitionToAddDeleteMethods</blockhound.argline>
1028+
<!-- allow deep reflection for mockito when using JDK 17+, see https://stackoverflow.com/questions/70993863/mockito-can-not-mock-random-in-java-17 -->
1029+
<mockitoopens.argline>--add-opens=java.base/jdk.internal.util.random=ALL-UNNAMED</mockitoopens.argline>
1030+
</properties>
1031+
</profile>
10191032
</profiles>
10201033
<licenses>
10211034
<license>

0 commit comments

Comments
 (0)