Fix "endPosTable already set" from javac Non clean build fails with javac exception. It is believed that the cause is that Maven tries to run annotation pre-proessor over already pre-processed files. Running annotation again is not allowed, thus javac failure.
The workaround is to clean ubenchmark/target directory on validate to avoid incremental compilations More info here: https://bugs.openjdk.java.net/browse/JDK-8067747?focusedCommentId=13872639&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13872639 Exception: An exception has occurred in the compiler (1.8.0_66). Please file a bug at the Java Bug Database (http://bugreport.java.com/bugreport/) after checking the database for duplicates. Include your program and the following diagnostic in your report. Thank you. java.lang.IllegalStateException: endPosTable already set at com.sun.tools.javac.util.DiagnosticSource.setEndPosTable(DiagnosticSource.java:136) at com.sun.tools.javac.util.Log.setEndPosTable(Log.java:350) at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:667) at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:950) at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.<init>(JavacProcessingEnvironment.java:892) at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.next(JavacProcessingEnvironment.java:921) at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1187) at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170) at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856) at com.sun.tools.javac.main.Main.compile(Main.java:523) at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129) at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138) at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:125) at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169) at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:823) at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/ba1eee12 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/ba1eee12 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/ba1eee12 Branch: refs/heads/branch-release Commit: ba1eee121c52ab0c2891fd4faa423e0a55f5b5f9 Parents: 4a29b3c Author: Vladimir Sitnikov <[email protected]> Authored: Sun Jan 10 11:23:50 2016 +0300 Committer: Julian Hyde <[email protected]> Committed: Sun Jan 10 00:46:49 2016 -0800 ---------------------------------------------------------------------- ubenchmark/pom.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/ba1eee12/ubenchmark/pom.xml ---------------------------------------------------------------------- diff --git a/ubenchmark/pom.xml b/ubenchmark/pom.xml index e50d4dd..83e29bb 100644 --- a/ubenchmark/pom.xml +++ b/ubenchmark/pom.xml @@ -64,6 +64,22 @@ limitations under the License. <build> <plugins> <plugin> + <!-- This workarounds Maven issue that tries to pass annotation-pre-processed sources + when using incremental compilation. + More details here: https://bugs.openjdk.java.net/browse/JDK-8067747?focusedCommentId=13872639&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13872639 + --> + <artifactId>maven-clean-plugin</artifactId> + <executions> + <execution> + <id>clean-on-validate</id> + <goals> + <goal>clean</goal> + </goals> + <phase>validate</phase> + </execution> + </executions> + </plugin> + <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source>
