I've been mostly lurking for awhile, but I would like to start picking off some
bugs in the Java implementation.In the process of slogging through the build,
I've bumped into various issues. I'm happy to document them in java/README.md
or make any other changes that might be helpful to others. I'm pretty
experienced with Java and Maven, so I think these are not super-obvious, but
let me know if I'm missing something.A lot of these may be Windows-specific. I
normally prefer Linux but just got a new laptop and haven't set it up, but this
experience is giving me a lot of incentive to run screaming back to Linux ;-)
Environment details:- Windows 10- Java 8:openjdk version "1.8.0_282"OpenJDK
Runtime Environment (AdoptOpenJDK)(build 1.8.0_282-b08)OpenJDK 64-Bit Server VM
(AdoptOpenJDK)(build 25.282-b08, mixed mode)- Cygwin environment- Maven 3.6.2
Issues encountered thus far:- Build does require Java 8, not "8 or later" as
stated in java/README.md There's a reference to sun.misc.Unsafe in
memory/memory-core/src/main/java/org/apache/arrow/memory/util/MemoryUtil.java
which of course went away in JDK 9. I can update the build instructions.-
The build won't work on Windows because the java/format POM downloads a binary
flatc executables; when I looked, there was no version for Windows, just Linux
and OSX. I wound up downloading Visual Studio and building the flatbuffers
project.- I bumped into what looks like a spurious checkstyle error: it reports
memory/src/test/java/io/netty/buffer/TestExpandableByteBuf.java having no
linefeed at the end when it definitely does. I set up Git not to do Windows
conversions, and I checked with various editors and binary dump utilities. One
source says that this because I'm running on Windows, checkstyle actually
expects a CR-LF and throws an error if it doesn't find it! I've worked around
this by disabling the check.- The one thing that I'm stuck on now is failures
on jdbc:
[INFO] Results:[INFO][ERROR] Failures:[ERROR]
JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:209
expected:<45935000> but was:<74735000>[ERROR]
JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:213
expected:<1518439535000> but was:<1518468335000>[ERROR]
JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:205
expected:<-365> but was:<-364>[ERROR]
JdbcToArrowNullTest.testJdbcToArrowValues:123->testDataSets:165->testAllVectorValues:209
expected:<17574> but was:<17573>[ERROR]
JdbcToArrowTest.testJdbcToArrowValues:138->testDataSets:206 expected:<17574>
but was:<17573>[ERROR]
JdbcToArrowVectorIteratorTest.testJdbcToArrowValuesNoLimit:107->validate:199->assertDateDayVectorValues:277
expected:<17574> but was:<17573>[ERROR]
JdbcToArrowVectorIteratorTest.testJdbcToArrowValues:95->validate:199->assertDateDayVectorValues:277
expected:<17574> but was:<17573>[INFO][ERROR] Tests run: 93, Failures: 7,
Errors: 0, Skipped: 0
I attached the full build output.Looking more closely at these errors, they
seem to be due to the timezone difference; for example, the difference between
74735000 (actual value) and 45935000 (expected) is 2880000, or 8 hours in
milliseconds, which is the PST timezone offset. I see in the pom.xml that
user.timezone is set to UTC. I have seen these types of errors in tests before;
I know there are ways to insulate the test from the user's current timezone but
maybe someone knows what's going on.
Thanks for any input!
[[1;34mINFO[m] Scanning for projects...
[[1;34mINFO[m]
------------------------------------------------------------------------
[[1;34mINFO[m] Detecting the operating system and CPU architecture
[[1;34mINFO[m]
------------------------------------------------------------------------
[[1;34mINFO[m] os.detected.name: windows
[[1;34mINFO[m] os.detected.arch: x86_64
[[1;34mINFO[m] os.detected.version: 10.0
[[1;34mINFO[m] os.detected.version.major: 10
[[1;34mINFO[m] os.detected.version.minor: 0
[[1;34mINFO[m] os.detected.classifier: windows-x86_64
[[1;34mINFO[m]
[1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1mReactor Build Order:[m
[[1;34mINFO[m]
[[1;34mINFO[m] Arrow JDBC Adapter
[jar]
[[1;34mINFO[m] Arrow Plasma Client
[jar]
[[1;34mINFO[m] Arrow Flight Core
[jar]
[[1;34mINFO[m] Arrow Flight GRPC
[jar]
[[1;34mINFO[m] Arrow AVRO Adapter
[jar]
[[1;34mINFO[m] Arrow Algorithms
[jar]
[[1;34mINFO[m] Arrow Performance Benchmarks
[jar]
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--------------------<
[0;36morg.apache.arrow:arrow-jdbc[0;1m >---------------------[m
[[1;34mINFO[m] [1mBuilding Arrow JDBC Adapter 4.0.0-SNAPSHOT
[1/7][m
[[1;34mINFO[m] [1m--------------------------------[ jar
]---------------------------------[m
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-clean-plugin:3.0.0:clean[m
[1m(default-clean)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m] Deleting C:\projects\arrow\java\adapter\jdbc\target
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mapache-rat-plugin:0.13:check[m
[1m(rat-checks)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m] Enabled default license matchers.
[[1;34mINFO[m] Will parse SCM ignores for exclusions...
[[1;34mINFO[m] Finished adding exclusions from SCM ignore files.
[[1;34mINFO[m] 62 implicit excludes (use -debug for more details).
[[1;34mINFO[m] 36 explicit excludes (use -debug for more details).
[[1;34mINFO[m] 77 resources included (use -debug for more details)
[[1;34mINFO[m] Rat check: Summary over all files. Unapproved: 0, unknown: 0,
generated: 0, approved: 77 licenses.
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-checkstyle-plugin:3.1.0:check[m
[1m(validate)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m] Starting audit...
Audit done.
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mgit-commit-id-plugin:2.2.2:revision[m
[1m(for-jars)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-remote-resources-plugin:1.5:process[m
[1m(process-resource-bundles)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-resources-plugin:2.6:resources[m
[1m(default-resources)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m] Using 'UTF-8' encoding to copy filtered resources.
[[1;34mINFO[m] skip non existing resourceDirectory
C:\projects\arrow\java\adapter\jdbc\src\main\resources
[[1;34mINFO[m] Copying 3 resources
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-compiler-plugin:3.6.2:compile[m
[1m(default-compile)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m] Compiling 28 source files to
C:\projects\arrow\java\adapter\jdbc\target\classes
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-resources-plugin:2.6:testResources[m
[1m(default-testResources)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m] Using 'UTF-8' encoding to copy filtered resources.
[[1;34mINFO[m] Copying 36 resources
[[1;34mINFO[m] Copying 3 resources
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-compiler-plugin:3.6.2:testCompile[m
[1m(default-testCompile)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m] Compiling 12 source files to
C:\projects\arrow\java\adapter\jdbc\target\test-classes
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-surefire-plugin:3.0.0-M3:test[m
[1m(default-test)[m @ [36marrow-jdbc[0;1m ---[m
[[1;34mINFO[m]
[[1;34mINFO[m] -------------------------------------------------------
[[1;34mINFO[m] T E S T S
[[1;34mINFO[m] -------------------------------------------------------
[[1;34mINFO[m] Running
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowCharSetTest[m
[[1;34mINFO[m] Running
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowArrayTest[m
15:25:45.305 [main] INFO o.apache.arrow.memory.BaseAllocator - Debug mode
enabled.
15:25:45.309 [main] INFO o.a.a.m.DefaultAllocationManagerOption - allocation
manager type not specified, using netty as the default type
15:25:45.311 [main] INFO o.apache.arrow.memory.CheckAllocator - Using
DefaultAllocationManager at
memory-netty/4.0.0-SNAPSHOT/arrow-memory-netty-4.0.0-SNAPSHOT.jar!/org/apache/arrow/memory/DefaultAllocationManagerFactory.class
15:25:45.365 [main] INFO o.apache.arrow.memory.BaseAllocator - Debug mode
enabled.
15:25:45.370 [main] INFO o.a.a.m.DefaultAllocationManagerOption - allocation
manager type not specified, using netty as the default type
15:25:45.372 [main] INFO o.apache.arrow.memory.CheckAllocator - Using
DefaultAllocationManager at
memory-netty/4.0.0-SNAPSHOT/arrow-memory-netty-4.0.0-SNAPSHOT.jar!/org/apache/arrow/memory/DefaultAllocationManagerFactory.class
[[1;34mINFO[m] [1;32mTests run: [0;1;32m3[m, Failures: 0, Errors: 0,
Skipped: 0, Time elapsed: 0.532 s - in
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowArrayTest[m
[[1;34mINFO[m] Running
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowDataTypesTest[m
[[1;34mINFO[m] [1;32mTests run: [0;1;32m8[m, Failures: 0, Errors: 0,
Skipped: 0, Time elapsed: 0.7 s - in
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowCharSetTest[m
[[1;34mINFO[m] Running
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowTimeZoneTest[m
[[1;34mINFO[m] [1;32mTests run: [0;1;32m18[m, Failures: 0, Errors: 0,
Skipped: 0, Time elapsed: 0.141 s - in
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowTimeZoneTest[m
[[1;34mINFO[m] Running org.apache.arrow.adapter.jdbc.[1mJdbcFieldInfoTest[m
[[1;34mINFO[m] [1;32mTests run: [0;1;32m2[m, Failures: 0, Errors: 0,
Skipped: 0, Time elapsed: 0 s - in
org.apache.arrow.adapter.jdbc.[1mJdbcFieldInfoTest[m
[[1;34mINFO[m] Running
org.apache.arrow.adapter.jdbc.[1mJdbcToArrowConfigTest[m
[[1;34mINFO[m] [1;32mTests run: [0;1;32m11[m, Failures: 0, Errors: 0,
Skipped: 0, Time elapsed: 0.001 s - in
org.apache.arrow.adapter.jdbc.[1mJdbcToArrowConfigTest[m
[[1;31mERROR[m] [1;31mTests [0;1mrun: [0;1m36[m, [1;31mFailures:
[0;1;31m3[m, Errors: 0, Skipped: 0, Time elapsed: 0.383 s[1;31m <<<
FAILURE![m - in
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowDataTypesTest[m
[[1;31mERROR[m] testJdbcToArrowValues[7] Time elapsed: 0.012 s <<< FAILURE!
java.lang.AssertionError: expected:<-365> but was:<-364>
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowDataTypesTest.testDataSets(JdbcToArrowDataTypesTest.java:205)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowDataTypesTest.testJdbcToArrowValues(JdbcToArrowDataTypesTest.java:146)
[[1;31mERROR[m] testJdbcToArrowValues[13] Time elapsed: 0.007 s <<< FAILURE!
java.lang.AssertionError: expected:<45935000> but was:<74735000>
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowDataTypesTest.testDataSets(JdbcToArrowDataTypesTest.java:209)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowDataTypesTest.testJdbcToArrowValues(JdbcToArrowDataTypesTest.java:146)
[[1;31mERROR[m] testJdbcToArrowValues[14] Time elapsed: 0.007 s <<< FAILURE!
java.lang.AssertionError: expected:<1518439535000> but was:<1518468335000>
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowDataTypesTest.testDataSets(JdbcToArrowDataTypesTest.java:213)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowDataTypesTest.testJdbcToArrowValues(JdbcToArrowDataTypesTest.java:146)
[[1;34mINFO[m] Running
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowNullTest[m
[[1;31mERROR[m] [1;31mTests [0;1mrun: [0;1m6[m, [1;31mFailures:
[0;1;31m1[m, Errors: 0, Skipped: 0, Time elapsed: 0.224 s[1;31m <<<
FAILURE![m - in org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowNullTest[m
[[1;31mERROR[m] testJdbcToArrowValues[2] Time elapsed: 0.019 s <<< FAILURE!
java.lang.AssertionError: expected:<17574> but was:<17573>
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowNullTest.testAllVectorValues(JdbcToArrowNullTest.java:209)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowNullTest.testDataSets(JdbcToArrowNullTest.java:165)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowNullTest.testJdbcToArrowValues(JdbcToArrowNullTest.java:123)
[[1;34mINFO[m] Running org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowTest[m
[[1;31mERROR[m] [1;31mTests [0;1mrun: [0;1m3[m, [1;31mFailures:
[0;1;31m1[m, Errors: 0, Skipped: 0, Time elapsed: 3.13 s[1;31m <<<
FAILURE![m - in org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowTest[m
[[1;31mERROR[m] testJdbcToArrowValues[0] Time elapsed: 0.02 s <<< FAILURE!
java.lang.AssertionError: expected:<17574> but was:<17573>
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowTest.testDataSets(JdbcToArrowTest.java:206)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowTest.testJdbcToArrowValues(JdbcToArrowTest.java:138)
[[1;34mINFO[m] Running
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowVectorIteratorTest[m
[[1;31mERROR[m] [1;31mTests [0;1mrun: [0;1m6[m, [1;31mFailures:
[0;1;31m2[m, Errors: 0, Skipped: 0, Time elapsed: 3.069 s[1;31m <<<
FAILURE![m - in
org.apache.arrow.adapter.jdbc.h2.[1mJdbcToArrowVectorIteratorTest[m
[[1;31mERROR[m] testJdbcToArrowValuesNoLimit[0] Time elapsed: 0.018 s <<<
FAILURE!
java.lang.AssertionError: expected:<17574> but was:<17573>
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowVectorIteratorTest.assertDateDayVectorValues(JdbcToArrowVectorIteratorTest.java:277)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowVectorIteratorTest.validate(JdbcToArrowVectorIteratorTest.java:199)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowVectorIteratorTest.testJdbcToArrowValuesNoLimit(JdbcToArrowVectorIteratorTest.java:107)
[[1;31mERROR[m] testJdbcToArrowValues[0] Time elapsed: 0.067 s <<< FAILURE!
java.lang.AssertionError: expected:<17574> but was:<17573>
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowVectorIteratorTest.assertDateDayVectorValues(JdbcToArrowVectorIteratorTest.java:277)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowVectorIteratorTest.validate(JdbcToArrowVectorIteratorTest.java:199)
at
org.apache.arrow.adapter.jdbc.h2.JdbcToArrowVectorIteratorTest.testJdbcToArrowValues(JdbcToArrowVectorIteratorTest.java:95)
[[1;34mINFO[m]
[[1;34mINFO[m] Results:
[[1;34mINFO[m]
[[1;31mERROR[m] [1;31mFailures: [m
[[1;31mERROR[m] [1;31m
JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:209
expected:<45935000> but was:<74735000>[m
[[1;31mERROR[m] [1;31m
JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:213
expected:<1518439535000> but was:<1518468335000>[m
[[1;31mERROR[m] [1;31m
JdbcToArrowDataTypesTest.testJdbcToArrowValues:146->testDataSets:205
expected:<-365> but was:<-364>[m
[[1;31mERROR[m] [1;31m
JdbcToArrowNullTest.testJdbcToArrowValues:123->testDataSets:165->testAllVectorValues:209
expected:<17574> but was:<17573>[m
[[1;31mERROR[m] [1;31m
JdbcToArrowTest.testJdbcToArrowValues:138->testDataSets:206 expected:<17574>
but was:<17573>[m
[[1;31mERROR[m] [1;31m
JdbcToArrowVectorIteratorTest.testJdbcToArrowValuesNoLimit:107->validate:199->assertDateDayVectorValues:277
expected:<17574> but was:<17573>[m
[[1;31mERROR[m] [1;31m
JdbcToArrowVectorIteratorTest.testJdbcToArrowValues:95->validate:199->assertDateDayVectorValues:277
expected:<17574> but was:<17573>[m
[[1;34mINFO[m]
[[1;31mERROR[m] [1;31mTests run: 93, Failures: 7, Errors: 0, Skipped: 0[m
[[1;34mINFO[m]
[[1;34mINFO[m]
[1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1mReactor Summary for Arrow JDBC Adapter 4.0.0-SNAPSHOT:[m
[[1;34mINFO[m]
[[1;34mINFO[m] Arrow JDBC Adapter .................................
[1;31mFAILURE[m [ 21.395 s]
[[1;34mINFO[m] Arrow Plasma Client ................................
[1;33mSKIPPED[m
[[1;34mINFO[m] Arrow Flight Core ..................................
[1;33mSKIPPED[m
[[1;34mINFO[m] Arrow Flight GRPC ..................................
[1;33mSKIPPED[m
[[1;34mINFO[m] Arrow AVRO Adapter .................................
[1;33mSKIPPED[m
[[1;34mINFO[m] Arrow Algorithms ...................................
[1;33mSKIPPED[m
[[1;34mINFO[m] Arrow Performance Benchmarks .......................
[1;33mSKIPPED[m
[[1;34mINFO[m]
[1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;31mBUILD FAILURE[m
[[1;34mINFO[m]
[1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 21.751 s
[[1;34mINFO[m] Finished at: 2021-03-11T15:25:53-08:00
[[1;34mINFO[m]
[1m------------------------------------------------------------------------[m
[[1;31mERROR[m] Failed to execute goal
[32morg.apache.maven.plugins:maven-surefire-plugin:3.0.0-M3:test[m
[1m(default-test)[m on project [36marrow-jdbc[m: [1;31mThere are test
failures.[m
[[1;31mERROR[m] [1;31m[m
[[1;31mERROR[m] [1;31mPlease refer to
C:\projects\arrow\java\adapter\jdbc\target\surefire-reports for the individual
test results.[m
[[1;31mERROR[m] [1;31mPlease refer to dump files (if any exist) [date].dump,
[date]-jvmRun[N].dump and [date].dumpstream.[m
[[1;31mERROR[m] -> [1m[Help 1][m
[[1;31mERROR[m]
[[1;31mERROR[m] To see the full stack trace of the errors, re-run Maven with
the [1m-e[m switch.
[[1;31mERROR[m] Re-run Maven using the [1m-X[m switch to enable full debug
logging.
[[1;31mERROR[m]
[[1;31mERROR[m] For more information about the errors and possible solutions,
please read the following articles:
[[1;31mERROR[m] [1m[Help 1][m
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException