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>

Reply via email to