fix: issue with class names in arrow-c jni calls#867
Conversation
|
There are quite few git actions failing but it looks like consistent with other PRs, running locally all tests are ok ➜ c git:(fix_866_jni_class_names) ✗ mvn -Darrow.c.jni.dist.dir=/Users/marko/git/arrow-java/java-dist/lib -Parrow-c-data clean test
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] ------------------------------------------------------------------------
[INFO] os.detected.name: osx
[INFO] os.detected.arch: aarch_64
[INFO] os.detected.bitness: 64
[INFO] os.detected.version: 26.0
[INFO] os.detected.version.major: 26
[INFO] os.detected.version.minor: 0
[INFO] os.detected.classifier: osx-aarch_64
[INFO]
[INFO] -------------------< org.apache.arrow:arrow-c-data >--------------------
[INFO] Building Arrow Java C Data Interface 19.0.0-SNAPSHOT
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- clean:3.4.1:clean (default-clean) @ arrow-c-data ---
[INFO] Deleting /Users/marko/git/arrow-java/c/target
[INFO]
[INFO] --- enforcer:3.5.0:enforce (enforce-maven-version) @ arrow-c-data ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
[INFO]
[INFO] --- enforcer:3.5.0:enforce (enforce-java-version) @ arrow-c-data ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed
[INFO]
[INFO] --- checkstyle:3.6.0:check (validate) @ arrow-c-data ---
[INFO] Loaded from the build cache, saving 0.596s
[INFO]
[INFO] --- git-commit-id:4.9.10:revision (for-jars) @ arrow-c-data ---
[INFO]
[INFO] --- remote-resources:3.3.0:process (process-resource-bundles) @ arrow-c-data ---
[INFO] Preparing remote bundle org.apache.apache.resources:apache-jar-resource-bundle:1.7
[INFO] Copying 3 resources from 1 bundle.
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ arrow-c-data ---
[INFO] Copying 1 resource from ../java-dist/lib to target/classes
[INFO] Copying 3 resources from target/maven-shared-archive-resources to target/classes
[INFO]
[INFO] --- compiler:3.14.0:compile (default-compile) @ arrow-c-data ---
[WARNING] ****************************************************************************************************************************************************
[WARNING] * Required filename-based automodules detected: [flatbuffers-java-25.2.10.jar]. Please don't publish this project to a public artifact repository! *
[WARNING] ****************************************************************************************************************************************************
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 25 source files with javac [forked debug release 11 module-path] to target/classes
[INFO]
[INFO] --- resources:3.3.1:testResources (default-testResources) @ arrow-c-data ---
[INFO] skip non existing resourceDirectory /Users/marko/git/arrow-java/c/src/test/resources
[INFO] Copying 3 resources from target/maven-shared-archive-resources to target/test-classes
[INFO]
[INFO] --- compiler:3.14.0:testCompile (default-testCompile) @ arrow-c-data ---
[INFO] Recompiling the module because of changed dependency.
[INFO] Compiling 9 source files with javac [forked debug release 11] to target/test-classes
[INFO]
[INFO] --- surefire:3.5.2:test (default-test) @ arrow-c-data ---
[WARNING] Could not extract goal execution properties.
[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
WARNING: Unknown module: org.apache.arrow.memory.core specified to --add-opens
WARNING: Unknown module: org.apache.arrow.memory.core specified to --add-opens
[INFO] Running org.apache.arrow.c.NativeUtilTest
[INFO] Running org.apache.arrow.c.FormatTest
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.025 s -- in org.apache.arrow.c.FormatTest
19:55:06.129 [main] INFO org.apache.arrow.memory.BaseAllocator -- Debug mode disabled. Enable with the VM option -Darrow.memory.debug.allocator=true.
19:55:06.131 [main] INFO org.apache.arrow.memory.DefaultAllocationManagerOption -- allocation manager type not specified, using netty as the default type
19:55:06.132 [main] INFO org.apache.arrow.memory.CheckAllocator -- Using DefaultAllocationManager at memory-unsafe/19.0.0-SNAPSHOT/arrow-memory-unsafe-19.0.0-SNAPSHOT.jar!/org/apache/arrow/memory/unsafe/DefaultAllocationManagerFactory.class
19:55:06.133 [main] DEBUG org.apache.arrow.memory.util.MemoryUtil -- Constructor for direct buffer found and made accessible
19:55:06.134 [main] DEBUG org.apache.arrow.memory.util.MemoryUtil -- direct buffer constructor: available
19:55:06.135 [main] DEBUG org.apache.arrow.memory.rounding.DefaultRoundingPolicy -- -Dorg.apache.memory.allocator.pageSize: 8192
19:55:06.135 [main] DEBUG org.apache.arrow.memory.rounding.DefaultRoundingPolicy -- -Dorg.apache.memory.allocator.maxOrder: 11
[INFO] Running org.apache.arrow.c.MetadataTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.043 s -- in org.apache.arrow.c.NativeUtilTest
[INFO] Running org.apache.arrow.c.StreamTest
19:55:06.164 [main] INFO org.apache.arrow.memory.BaseAllocator -- Debug mode disabled. Enable with the VM option -Darrow.memory.debug.allocator=true.
19:55:06.167 [main] INFO org.apache.arrow.memory.DefaultAllocationManagerOption -- allocation manager type not specified, using netty as the default type
19:55:06.167 [main] INFO org.apache.arrow.memory.CheckAllocator -- Using DefaultAllocationManager at memory-unsafe/19.0.0-SNAPSHOT/arrow-memory-unsafe-19.0.0-SNAPSHOT.jar!/org/apache/arrow/memory/unsafe/DefaultAllocationManagerFactory.class
19:55:06.169 [main] DEBUG org.apache.arrow.memory.util.MemoryUtil -- Constructor for direct buffer found and made accessible
19:55:06.170 [main] DEBUG org.apache.arrow.memory.util.MemoryUtil -- direct buffer constructor: available
19:55:06.170 [main] DEBUG org.apache.arrow.memory.rounding.DefaultRoundingPolicy -- -Dorg.apache.memory.allocator.pageSize: 8192
19:55:06.170 [main] DEBUG org.apache.arrow.memory.rounding.DefaultRoundingPolicy -- -Dorg.apache.memory.allocator.maxOrder: 11
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.035 s -- in org.apache.arrow.c.MetadataTest
[INFO] Running org.apache.arrow.c.FlagsTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s -- in org.apache.arrow.c.FlagsTest
[INFO] Running org.apache.arrow.c.RoundtripTest
19:55:06.626 [main] DEBUG org.apache.arrow.vector.complex.AbstractContainerVector -- Field [boolean] mutated to [BitVector]
19:55:06.626 [main] DEBUG org.apache.arrow.vector.complex.AbstractContainerVector -- Field [varchar] mutated to [VarCharVector]
19:55:06.627 [main] DEBUG org.apache.arrow.vector.complex.AbstractContainerVector -- Field [boolean] mutated to [BitVector]
19:55:06.627 [main] DEBUG org.apache.arrow.vector.complex.AbstractContainerVector -- Field [varchar] mutated to [VarCharVector]
[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.468 s -- in org.apache.arrow.c.StreamTest
[INFO] Running org.apache.arrow.c.DictionaryTest
19:55:06.640 [main] DEBUG org.apache.arrow.vector.ipc.ArrowWriter -- RecordBatch at 152, metadata: 144, body: 32
19:55:06.640 [main] DEBUG org.apache.arrow.vector.ipc.ArrowWriter -- RecordBatch at 328, metadata: 144, body: 24
19:55:06.640 [main] DEBUG org.apache.arrow.vector.ipc.ArrowWriter -- RecordBatch at 496, metadata: 144, body: 32
19:55:06.641 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.641 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.641 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 144
19:55:06.641 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.641 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.641 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 136
19:55:06.641 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 32
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 136
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 24
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 136
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 32
19:55:06.642 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
19:55:06.643 [main] DEBUG org.apache.arrow.vector.ipc.ReadChannel -- Reading buffer with size: 4
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 s -- in org.apache.arrow.c.DictionaryTest
[INFO] Running org.apache.arrow.c.ArrowArrayUtilityTest
[INFO] Tests run: 62, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.442 s -- in org.apache.arrow.c.RoundtripTest
[INFO] Running org.apache.arrow.c.ExceptionTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s -- in org.apache.arrow.c.ArrowArrayUtilityTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.020 s -- in org.apache.arrow.c.ExceptionTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 96, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.402 s
[INFO] Finished at: 2025-10-02T20:55:06+01:00
[INFO] ------------------------------------------------------------------------
[INFO] 11 goals, 10 executed, 1 from cache
[INFO] Build cache (/Users/marko/.m2/.develocity/build-cache/v1) removing files not accessed on or after Thu Sep 25 20:55:06 IST 2025.
[INFO] Build cache (/Users/marko/.m2/.develocity/build-cache/v1) cleanup deleted 0 files/directories.
[INFO] Build cache (/Users/marko/.m2/.develocity/build-cache/v1) cleaned up in 0.001 secs.
|
lidavidm
left a comment
There was a problem hiding this comment.
Thanks! I guess HotSpot doesn't care but GraalVM does?
|
GraalVM only complains when code is running as part of native-image, if you run it as java it will not complain, everything works as expected. It was one deep rabbit hole finding what the issue was. thanks for merging @lidavidm |
|
Thanks for figuring it out! I will try to update the docs when I get a chance... |
|
one last question, whats the time frame for 19 release ? |
|
CC @jbonofre, we are trying to do a release but as you saw we need to clean up our CI :) |
|
I'm on it: clean ci and release when green. |
|
I need to work on apache/arrow#47632 for this... |
What's Changed
Arrow C JNI code used class names which are not according to specification, making code unusable in latest graalvm 25.
This PR changes class names according to JNI specification. More details at #866
Closes #866