| We have just integrated hibernate-validator-annotation-processor into our build. Since then some of our Travis CI builds have started to fail randomly. A representative stack trace is the following:
(The stacktrace is not quite complete; this is probably due to Travis CI not retaining the last bit of output after receiving an error signal.) A Google search turns up one other report of this issue. There the users decided to drop the annotation processor; we'd rather not do that. We have a rather complicated Maven setup and since it's all private code I cannot share a simple reproduction case, but the maven-compiler-plugin configuration effectively amounts to the following:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.immutables</groupId>
<artifactId>value-processor</artifactId>
<version>2.7.1</version>
</path>
<path>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>6.0.13.Final</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<arg>-Xdoclint:reference</arg>
<arg>-Xlint:all</arg>
<arg>-Xlint:-path</arg>
<arg>-Xlint:-processing</arg>
<arg>-Xlint:-serial</arg>
<arg>-XepAllErrorsAsWarnings</arg>
<arg>-XepAllDisabledChecksAsWarnings</arg>
<arg>-XepDisableWarningsInGeneratedCode</arg>
<arg>-Xep:BooleanParameter:OFF</arg>
<arg>-Xep:CannotMockFinalClass:OFF</arg>
<arg>-Xep:ConstructorInvokesOverridable:OFF</arg>
<arg>-Xep:ConstructorLeaksThis:OFF</arg>
<arg>-Xep:FieldMissingNullable:OFF</arg>
<arg>-Xep:MethodCanBeStatic:OFF</arg>
<arg>-Xep:ReturnMissingNullable:OFF</arg>
<arg>-Xep:StaticOrDefaultInterfaceMethod:OFF</arg>
<arg>-Xep:Var:OFF</arg>
</compilerArgs>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<showWarnings>true</showWarnings>
<failOnWarning>true</failOnWarning>
<maxmem>256m</maxmem>
<parameters>true</parameters>
<source>1.8</source>
<target>1.8</target>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
<dependencies>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-api</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>2.8.5</version>
</dependency>
</dependencies>
</plugin>
Our Travis CI build uses mvn -T 2; this concurrency aspect may be relevant. |