diff --git a/docs/source/developers/java/building.rst b/docs/source/developers/java/building.rst
index 2b4682d525c..d675b8feac5 100644
--- a/docs/source/developers/java/building.rst
+++ b/docs/source/developers/java/building.rst
@@ -32,7 +32,7 @@ Arrow Java uses the `Maven `_ build system.
Building requires:
-* JDK 8, 9, 10, or 11, but only JDK 11 is tested in CI
+* JDK 8, 9, 10, 11, 17, or 18, but only JDK 11 is tested in CI.
* Maven 3+
Building
diff --git a/java/adapter/orc/pom.xml b/java/adapter/orc/pom.xml
index ab5146fc958..85eb8607062 100644
--- a/java/adapter/orc/pom.xml
+++ b/java/adapter/orc/pom.xml
@@ -52,10 +52,27 @@
+
+ org.apache.hadoop
+ hadoop-client-runtime
+ 3.3.2
+ test
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.apache.hadoop
+ hadoop-client-api
+ 3.3.2
+
org.apache.hadoop
hadoop-common
- 2.2.0
+ 3.3.2
test
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestCallOptions.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestCallOptions.java
index 45e3e496092..d739189e080 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestCallOptions.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestCallOptions.java
@@ -104,8 +104,7 @@ private void testHeaders(CallHeaders headers) {
FlightServer s =
FlightTestUtil.getStartedServer((location) -> FlightServer.builder(a, location, producer).build());
FlightClient client = FlightClient.builder(a, s.getLocation()).build()) {
- client.doAction(new Action(""), new HeaderCallOption(headers)).hasNext();
-
+ Assert.assertFalse(client.doAction(new Action(""), new HeaderCallOption(headers)).hasNext());
final CallHeaders incomingHeaders = producer.headers();
for (String key : headers.keys()) {
if (key.endsWith(Metadata.BINARY_HEADER_SUFFIX)) {
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestClientMiddleware.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestClientMiddleware.java
index ccfc9f2d177..f150a294aa4 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestClientMiddleware.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestClientMiddleware.java
@@ -246,12 +246,13 @@ public FlightClientMiddleware onCallStarted(CallInfo info) {
}
// Used to test that middleware can send and receive multi-valued text and binary headers.
- static final Map> EXPECTED_BINARY_HEADERS = new HashMap>() {{
- put("x-binary-bin", Arrays.asList(new byte[] {0}, new byte[]{1}));
- }};
- static final Map> EXPECTED_TEXT_HEADERS = new HashMap>() {{
- put("x-text", Arrays.asList("foo", "bar"));
- }};
+ static Map> EXPECTED_BINARY_HEADERS = new HashMap>();
+ static Map> EXPECTED_TEXT_HEADERS = new HashMap>();
+
+ static {
+ EXPECTED_BINARY_HEADERS.put("x-binary-bin", Arrays.asList(new byte[] {0}, new byte[]{1}));
+ EXPECTED_TEXT_HEADERS.put("x-text", Arrays.asList("foo", "bar"));
+ }
static class MultiHeaderServerMiddlewareFactory implements
FlightServerMiddleware.Factory {
diff --git a/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/FlightSqlClient.java b/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/FlightSqlClient.java
index 719c6bb5ac5..221b9d0c760 100644
--- a/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/FlightSqlClient.java
+++ b/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/FlightSqlClient.java
@@ -318,7 +318,7 @@ public FlightInfo getPrimaryKeys(final TableRef tableRef, final CallOption... op
}
Objects.requireNonNull(tableRef.getTable());
- builder.setTable(tableRef.getTable()).build();
+ builder.setTable(tableRef.getTable());
final FlightDescriptor descriptor = FlightDescriptor.command(Any.pack(builder.build()).toByteArray());
return client.getInfo(descriptor, options);
@@ -345,7 +345,7 @@ public FlightInfo getExportedKeys(final TableRef tableRef, final CallOption... o
}
Objects.requireNonNull(tableRef.getTable());
- builder.setTable(tableRef.getTable()).build();
+ builder.setTable(tableRef.getTable());
final FlightDescriptor descriptor = FlightDescriptor.command(Any.pack(builder.build()).toByteArray());
return client.getInfo(descriptor, options);
@@ -373,7 +373,7 @@ public FlightInfo getImportedKeys(final TableRef tableRef,
}
Objects.requireNonNull(tableRef.getTable());
- builder.setTable(tableRef.getTable()).build();
+ builder.setTable(tableRef.getTable());
final FlightDescriptor descriptor = FlightDescriptor.command(Any.pack(builder.build()).toByteArray());
return client.getInfo(descriptor, options);
diff --git a/java/memory/memory-core/src/test/java/org/apache/arrow/memory/util/TestArrowBufPointer.java b/java/memory/memory-core/src/test/java/org/apache/arrow/memory/util/TestArrowBufPointer.java
index c3ed0d05705..a1d5624a7e8 100644
--- a/java/memory/memory-core/src/test/java/org/apache/arrow/memory/util/TestArrowBufPointer.java
+++ b/java/memory/memory-core/src/test/java/org/apache/arrow/memory/util/TestArrowBufPointer.java
@@ -18,6 +18,7 @@
package org.apache.arrow.memory.util;
import static junit.framework.TestCase.assertEquals;
+import static junit.framework.TestCase.assertNotSame;
import static junit.framework.TestCase.assertTrue;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -120,18 +121,18 @@ public void testReuseHashCode() {
ArrowBufPointer pointer = new ArrowBufPointer(hasher);
pointer.set(buf, 0, 4);
- pointer.hashCode();
+ int hashCode = pointer.hashCode();
// hash code computed
assertEquals(1, hasher.counter);
// no hash code re-compute
- pointer.hashCode();
+ assertEquals(hashCode, pointer.hashCode());
assertEquals(1, hasher.counter);
// hash code re-computed
pointer.set(buf, 4, 4);
- pointer.hashCode();
+ assertNotSame(hashCode, pointer.hashCode());
assertEquals(2, hasher.counter);
}
}
diff --git a/java/pom.xml b/java/pom.xml
index c74023c9e7b..f0a073f93c3 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -42,6 +42,8 @@
2
true
9+181-r4173-1
+ 2.13.1
+ 3.10.1
@@ -376,7 +378,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.6.2
+ ${maven-compiler-plugin.version}
@@ -690,7 +692,7 @@
- java-8
+ java-nodoclint
[1.8,)
@@ -729,13 +731,14 @@
- error-prone
+ error-prone-jdk8
+ 1.8
!m2e.version
@@ -746,9 +749,11 @@
org.apache.maven.plugins
maven-compiler-plugin
+ true
-XDcompilePolicy=simple
-Xplugin:ErrorProne
+ -J-Xbootclasspath/p:${settings.localRepository}/com/google/errorprone/javac/${errorprone.javac.version}/javac-${errorprone.javac.version}.jar
@@ -764,12 +769,11 @@
- error-prone-jdk8
-
+ error-prone-jdk11+
- 1.8
+ [11,)
- !m2e.version
+ !m2e.version
@@ -778,10 +782,40 @@
org.apache.maven.plugins
maven-compiler-plugin
- true
+ 8
+ 8
+ UTF-8
- -J-Xbootclasspath/p:${settings.localRepository}/com/google/errorprone/javac/${errorprone.javac.version}/javac-${errorprone.javac.version}.jar
+ -XDcompilePolicy=simple
+
+ -Xplugin:ErrorProne \
+ -XepExcludedPaths:.*/(target/generated-sources)/.*
+
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
+
+
+ com.google.errorprone
+ error_prone_core
+ ${error_prone_core.version}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ --add-opens=java.base/java.nio=ALL-UNNAMED