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