fix: issue with class names in arrow-c jni calls - #867
Merged
Merged
Conversation
milenkovicm
requested review from
jbonofre,
laurentgo,
lidavidm and
wgtmac
as code owners
October 2, 2025 19:26
Contributor
Author
|
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.
|
Contributor
Author
|
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 |
Member
|
Thanks for figuring it out! I will try to update the docs when I get a chance... |
Contributor
Author
|
one last question, whats the time frame for 19 release ? |
Member
|
CC @jbonofre, we are trying to do a release but as you saw we need to clean up our CI :) |
Member
|
I'm on it: clean ci and release when green. |
Member
|
I need to work on apache/arrow#47632 for this... |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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