Skip to content

Commit e900839

Browse files
committed
workflows fix
1 parent 8bfdf45 commit e900839

2 files changed

Lines changed: 42 additions & 16 deletions

File tree

‎.github/workflows/maven.yaml‎

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,14 @@ jobs:
3131
echo "Java 25 detected → Building all modules, but skipping parser-ng-gpu-simd tests"
3232
# 1. Build and install all modules into local .m2 without running tests
3333
mvn -B --update-snapshots clean install -Dgpg.skip -DskipTests
34-
35-
# 2. Run tests for all modules EXCEPT parser-ng-gpu-simd with JDK 25 memory access configurations
36-
JDK_JAVA_OPTIONS="--add-opens=java.base/java.nio=ALL-UNNAMED --enable-native-access=ALL-UNNAMED" \
37-
MAVEN_OPTS="-DargLine=\"--add-opens=java.base/java.nio=ALL-UNNAMED --enable-native-access=ALL-UNNAMED\"" \
34+
# 2. Run tests for all modules EXCEPT parser-ng-gpu-simd
3835
mvn -B test -pl "!parser-ng-gpu-simd"
3936
4037
elif [ "${{ matrix.java-version }}" -ge 22 ]; then
4138
echo "Java 22-24 detected → Building core + CPU SIMD + GPU SIMD + Arrow, but skipping parser-ng-gpu-simd tests"
4239
# 1. Build without tests (excluding bench)
4340
mvn -B --update-snapshots clean install -Dgpg.skip -pl "!parser-ng-bench" -DskipTests
44-
45-
# 2. Run tests excluding both bench AND gpu-simd with modern JDK memory overrides
46-
JDK_JAVA_OPTIONS="--add-opens=java.base/java.nio=ALL-UNNAMED --enable-native-access=ALL-UNNAMED" \
47-
MAVEN_OPTS="-DargLine=\"--add-opens=java.base/java.nio=ALL-UNNAMED --enable-native-access=ALL-UNNAMED\"" \
41+
# 2. Run tests excluding both bench AND gpu-simd
4842
mvn -B test -pl "!parser-ng-bench,!parser-ng-gpu-simd"
4943
5044
elif [ "${{ matrix.java-version }}" -eq 21 ]; then
@@ -54,4 +48,4 @@ jobs:
5448
else
5549
echo "Legacy Java (< 21) detected → Building core engine only (excluding SIMD, GPU, Arrow, bench and parser-ng-sql and parser-ng-parquet)"
5650
mvn -B --update-snapshots clean install -Dgpg.skip -pl "!parser-ng-simd,!parser-ng-bench,!parser-ng-gpu-simd,!parser-ng-arrow,!parser-ng-sql,!parser-ng-parquet"
57-
fi
51+
fi

‎parser-ng-parquet/pom.xml‎

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<exec.mainClass>com.github.gbenroscience.parser.ng.parquet.ParserNgParquet</exec.mainClass>
2727
<maven.compiler.release>22</maven.compiler.release>
2828
<maven.compiler.source>22</maven.compiler.source>
29-
<maven.compiler.target>22</maven.compiler.target>
29+
<maven.compiler.target>22</maven.compiler.target>
3030
<!-- Keep in lock-step with parser-ng-arrow so both modules share one Arrow runtime. -->
3131
<arrow.version>19.0.0</arrow.version>
3232
<!-- Latest parquet-java at time of writing (Aug 2026). Re-verify before release. -->
@@ -36,6 +36,13 @@
3636
<!-- JMH: keep core and the annotation processor in lock-step. -->
3737
<jmh.version>1.37</jmh.version>
3838

39+
<!--
40+
Arrow allocation manager used by surefire. Defaults to Netty; the jdk24plus profile
41+
switches it to Unsafe because Arrow 19's Netty allocator fails on JDK 24+.
42+
-->
43+
<arrow.alloc>Netty</arrow.alloc>
44+
<!-- Extra JVM flags that only exist on newer JDKs. Empty by default; set in jdk24plus. -->
45+
<jdk.extra.args></jdk.extra.args>
3946
</properties>
4047

4148
<dependencies>
@@ -85,13 +92,13 @@
8592
<scope>provided</scope>
8693
</dependency>
8794

88-
<!-- Test only: the SQL/Arrow modules are NEVER a compile dependency of this module.
95+
<!-- Test only: the SQL/Arrow modules are NEVER a compile dependency of this module. -->
8996
<dependency>
9097
<groupId>com.github.gbenroscience</groupId>
9198
<artifactId>parser-ng-sql</artifactId>
9299
<version>${project.version}</version>
93100
<scope>test</scope>
94-
</dependency>-->
101+
</dependency>
95102
<dependency>
96103
<groupId>org.junit.jupiter</groupId>
97104
<artifactId>junit-jupiter</artifactId>
@@ -108,7 +115,7 @@
108115
<version>3.13.0</version>
109116
<configuration>
110117
<release>${maven.compiler.release}</release>
111-
<!-- FIX: Enable the vector API module for source compilation -->
118+
<!-- Enable the vector API module for source compilation -->
112119
<compilerArgs>
113120
<arg>--add-modules</arg>
114121
<arg>jdk.incubator.vector</arg>
@@ -140,9 +147,9 @@
140147
--add-opens=java.base/java.util=ALL-UNNAMED
141148
--add-opens=java.base/java.lang=ALL-UNNAMED
142149
-Dio.netty.tryReflectionSetAccessible=true
143-
-Darrow.allocation.manager.type=Netty
150+
-Darrow.allocation.manager.type=${arrow.alloc}
151+
${jdk.extra.args}
144152
</argLine>
145-
<!-- REMOVED: compilerArgs from surefire plugin (invalid tag here) -->
146153
</configuration>
147154
</plugin>
148155
<plugin>
@@ -167,7 +174,32 @@
167174
</build>
168175

169176
<profiles>
170-
177+
178+
<!--
179+
JDK 24+: Arrow 19's Netty allocator fails in NettyAllocationManager.<clinit>
180+
(EmptyByteBuf.memoryAddress -> UnsupportedOperationException), so every test that touches
181+
RootAllocator errors out. Use Arrow's Unsafe allocator instead.
182+
The --sun-misc-unsafe-memory-access flag only exists on newer JDKs, hence it lives here.
183+
-->
184+
<profile>
185+
<id>jdk24plus</id>
186+
<activation>
187+
<jdk>[24,)</jdk>
188+
</activation>
189+
<properties>
190+
<arrow.alloc>Unsafe</arrow.alloc>
191+
<jdk.extra.args>--sun-misc-unsafe-memory-access=allow</jdk.extra.args>
192+
</properties>
193+
<dependencies>
194+
<dependency>
195+
<groupId>org.apache.arrow</groupId>
196+
<artifactId>arrow-memory-unsafe</artifactId>
197+
<version>${arrow.version}</version>
198+
<scope>runtime</scope>
199+
</dependency>
200+
</dependencies>
201+
</profile>
202+
171203
<profile>
172204
<id>jmh</id>
173205
<dependencies>

0 commit comments

Comments
 (0)