This is an automated email from the ASF dual-hosted git repository.
voonhous pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new b0a2563e25e5 fix(build): declare lombok in annotationProcessorPaths to
deflake parallel-build compilation (#19020)
b0a2563e25e5 is described below
commit b0a2563e25e533d195b24f3b88103b99d91ade28
Author: Vova Kolmakov <[email protected]>
AuthorDate: Wed Jul 15 19:04:18 2026 +0700
fix(build): declare lombok in annotationProcessorPaths to deflake
parallel-build compilation (#19020)
* fix(build): declare lombok in annotationProcessorPaths to deflake
parallel-build compilation
Parallel reactor builds (mvn -T) intermittently fail testCompile with
"Provider lombok... could not be instantiated" because the processor is
discovered from the shared compile classpath via ServiceLoader. Declaring
lombok explicitly in the compiler plugin's annotationProcessorPaths gives each
compilation an isolated processor path, removing the race. Lombok is the only
annotation processor with work in the build, so no other processing is affected.
* addressed review comments: note JDK 23+ processor-path benefit in the
compiler-plugin comment
---------
Co-authored-by: Vova Kolmakov <[email protected]>
---
pom.xml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/pom.xml b/pom.xml
index 41679bc13055..178c9f52c811 100644
--- a/pom.xml
+++ b/pom.xml
@@ -382,6 +382,20 @@
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
+ <!-- Declare the annotation processor path explicitly instead of
relying on classpath
+ service discovery. Lombok is the only annotation processor in
the build, and an
+ isolated processor path avoids the flaky "Provider lombok...
could not be
+ instantiated" ServiceLoader race seen under parallel (-T)
reactor builds. It also
+ keeps Lombok running under JDK 23+ toolchains, where javac no
longer enables
+ annotation processing from classpath discovery alone and
requires an explicit
+ processor path (or -proc:full). -->
+ <annotationProcessorPaths>
+ <path>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>${lombok.version}</version>
+ </path>
+ </annotationProcessorPaths>
</configuration>
</plugin>
<plugin>