diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml
index 4c144955fbe..b19d7d8d13a 100644
--- a/.github/workflows/java.yml
+++ b/.github/workflows/java.yml
@@ -57,7 +57,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- jdk: [8, 11, 17, 20]
+ jdk: [8, 11, 17, 21]
include:
- jdk: 8
title: AMD64 Debian 9 Java JDK 8 Maven 3.5.4
@@ -71,10 +71,10 @@ jobs:
title: AMD64 Ubuntu 22.04 Java JDK 17 Maven 3.9.3
maven: 3.9.3
image: eclipse-java
- - jdk: 20
- title: AMD64 Ubuntu 22.04 Java JDK 20 Maven 3.9.3
- maven: 3.9.3
- image: eclipse-java
+ - jdk: 21
+ title: AMD64 Ubuntu 22.04 Java JDK 21 Maven 3.9.4
+ maven: 3.9.4
+ image: amazon-java
env:
JDK: ${{ matrix.jdk }}
MAVEN: ${{ matrix.maven }}
diff --git a/docker-compose.yml b/docker-compose.yml
index 62e5aee0a84..3d25d3ade8b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -138,6 +138,7 @@ x-hierarchy:
- debian-java
- debian-js
- eclipse-java
+ - amazon-java
- fedora-cpp:
- fedora-python
- python-sdist
@@ -1705,6 +1706,18 @@ services:
volumes: *java-volumes
command: *java-command
+ amazon-java:
+ # Usage:
+ # docker-compose build amazon-java
+ # docker-compose run amazon-java
+ # Parameters:
+ # MAVEN: 3.9.4
+ # JDK: 21
+ image: ${ARCH}/maven:${MAVEN}-amazoncorretto-${JDK}
+ shm_size: *shm-size
+ volumes: *java-volumes
+ command: *java-command
+
############################## Integration ##################################
conda-integration:
diff --git a/java/flight/flight-sql-jdbc-core/pom.xml b/java/flight/flight-sql-jdbc-core/pom.xml
index 106d4f968db..34d7c268187 100644
--- a/java/flight/flight-sql-jdbc-core/pom.xml
+++ b/java/flight/flight-sql-jdbc-core/pom.xml
@@ -107,14 +107,14 @@
org.mockito
mockito-core
- 4.11.0
+ ${mockito.core.version}
test
org.mockito
mockito-inline
- 4.11.0
+ ${mockito.inline.version}
test
diff --git a/java/flight/flight-sql-jdbc-driver/pom.xml b/java/flight/flight-sql-jdbc-driver/pom.xml
index 1fd9222be37..03fb22db960 100644
--- a/java/flight/flight-sql-jdbc-driver/pom.xml
+++ b/java/flight/flight-sql-jdbc-driver/pom.xml
@@ -68,14 +68,14 @@
org.mockito
mockito-core
- 4.11.0
+ ${mockito.core.version}
test
org.mockito
mockito-inline
- 4.11.0
+ ${mockito.inline.version}
test
diff --git a/java/flight/pom.xml b/java/flight/pom.xml
index b1e1f4d3174..b6b84278c19 100644
--- a/java/flight/pom.xml
+++ b/java/flight/pom.xml
@@ -52,4 +52,17 @@
+
+
+
+ pin-mockito-jdk8
+
+ 1.8
+
+
+ 4.11.0
+ 4.11.0
+
+
+
diff --git a/java/pom.xml b/java/pom.xml
index cbfe723436a..b5ec6a61a7e 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -44,8 +44,10 @@
2
true
9+181-r4173-1
- 2.16
+ 2.22.0
3.10.1
+ 5.5.0
+ 5.2.0
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/dictionary/DictionaryEncoder.java b/java/vector/src/main/java/org/apache/arrow/vector/dictionary/DictionaryEncoder.java
index c44d106f536..ee619cf617a 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/dictionary/DictionaryEncoder.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/dictionary/DictionaryEncoder.java
@@ -112,13 +112,14 @@ public static ValueVector decode(ValueVector indices, Dictionary dictionary, Buf
* @param valueCount dictionary vector valueCount.
* @return index type.
*/
+ @SuppressWarnings("ComparisonOutOfRange")
public static ArrowType.Int getIndexType(int valueCount) {
Preconditions.checkArgument(valueCount >= 0);
if (valueCount <= Byte.MAX_VALUE) {
return new ArrowType.Int(8, true);
} else if (valueCount <= Character.MAX_VALUE) {
return new ArrowType.Int(16, true);
- } else if (valueCount <= Integer.MAX_VALUE) {
+ } else if (valueCount <= Integer.MAX_VALUE) { //this comparison to Integer.MAX_VALUE will always evaluate to true
return new ArrowType.Int(32, true);
} else {
return new ArrowType.Int(64, true);