[ 
https://issues.apache.org/jira/browse/MCOMPILER-346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17501651#comment-17501651
 ] 

Olivier Lamy commented on MCOMPILER-346:
----------------------------------------

Ok there might be some error message report when looking at diagnostic here 
[https://github.com/codehaus-plexus/plexus-compiler/blob/88562f744be32359d8cb3c4ce584439061ada74b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java#L137]

 

[~basil] thanks to provide an example project. Can you please add some license 
on it (such Apache) otherwise I cannot import it here thanks

 

> JDK10: Compiler plugin trips AssertionError inside javac when using 
> javax.tools API
> -----------------------------------------------------------------------------------
>
>                 Key: MCOMPILER-346
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-346
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 3.7.0
>            Reporter: Tobias Gierke
>            Priority: Major
>         Attachments: log.txt, sample_project.tgz
>
>
> Maven 3.5.3, 64-bit linux, Oracle JDK 10.0.1
> Compilation fails with a crash  inside javac *unless* the 
> maven-compiler-plugin is configured with
> {code:java}
> <forceJavacCompilerUse>true</forceJavacCompilerUse>{code}
> I had a brief look at the sources of Modules.java in the current OpenJDK10 
> and it looks like this is the assertion that gets tripped (line numbers do 
> not match exactly but it's close enough):
> {code:java}
>     public boolean enter(List<JCCompilationUnit> trees, ClassSymbol c) {
>         Assert.check(rootModules != null || inInitModules || !allowModules);
>         return enter(trees, modules -> {}, c);
>     }
> {code}
> Since the crash does not happen when invoking the compiler using commandline 
> arguments I suspect the plugin does something unexpected with the javax.tools 
> JavaCompiler API that later trips the exception.
> Unfortunately this is a commercial project so I cannot provide a test case :( 
> The project itself is a JDK8 project we're currently migrating to JDK10 and 
> while the project itself has no module-info files some of our dependencies do 
> (at least Automatic-Module-Name gets set in their manifests).
> I'll attach the output of a compile run with the '-verbose' option to this 
> ticket.
> Plugin configuration:
> {code:java}
> <build>
>   <plugins>
>         <plugin>
>           <artifactId>maven-compiler-plugin</artifactId>
>           <version>3.7.0</version>
>           <configuration>
>             <source>10</source>
>             <target>10</target>
>             <release>10</release>
>             <!-- <forceJavacCompilerUse>true</forceJavacCompilerUse> -->
>             <compilerArgs>
>                 <arg>-Werror</arg>
>                 <arg>-verbose</arg>
>             </compilerArgs>
>           </configuration>
>         </plugin>
>   </plugins>
> </build>
> {code}
> Exception:
> {code:java}
> Exception in thread "main" java.lang.AssertionError
>         at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:155)
>         at jdk.compiler/com.sun.tools.javac.util.Assert.check(Assert.java:46)
>         at 
> jdk.compiler/com.sun.tools.javac.comp.Modules.enter(Modules.java:244)
>         at 
> jdk.compiler/com.sun.tools.javac.main.JavaCompiler.readSourceFile(JavaCompiler.java:829)
>         at 
> jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ImplicitCompleter.complete(JavacProcessingEnvironment.java:1506)
>         at 
> jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:633)
>         at 
> jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1308)
>         at 
> jdk.compiler/com.sun.tools.javac.code.Type$ClassType.complete(Type.java:1139)
>         at 
> jdk.compiler/com.sun.tools.javac.code.Type$ClassType.getTypeArguments(Type.java:1065)
>         at 
> jdk.compiler/com.sun.tools.javac.code.Printer.visitClassType(Printer.java:237)
>         at 
> jdk.compiler/com.sun.tools.javac.code.Printer.visitClassType(Printer.java:52)
>         at 
> jdk.compiler/com.sun.tools.javac.code.Type$ClassType.accept(Type.java:992)
>         at 
> jdk.compiler/com.sun.tools.javac.code.Printer.visit(Printer.java:136)
>         at 
> jdk.compiler/com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArgument(AbstractDiagnosticFormatter.java:197)
>         at 
> jdk.compiler/com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArguments(AbstractDiagnosticFormatter.java:165)
>         at 
> jdk.compiler/com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:111)
>         at 
> jdk.compiler/com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:67)
>         at 
> jdk.compiler/com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArgument(AbstractDiagnosticFormatter.java:183)
>         at 
> jdk.compiler/com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArguments(AbstractDiagnosticFormatter.java:165)
>         at 
> jdk.compiler/com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:111)
>         at 
> jdk.compiler/com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:67)
>         at 
> jdk.compiler/com.sun.tools.javac.util.JCDiagnostic.getMessage(JCDiagnostic.java:771)
>         at 
> jdk.compiler/com.sun.tools.javac.api.ClientCodeWrapper$DiagnosticSourceUnwrapper.getMessage(ClientCodeWrapper.java:799)
>         at 
> org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:131)
>         at 
> org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)
>         at 
> org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1075)
>         at 
> org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:168)
>         at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
>         at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
>         at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
>         at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
>         at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
>         at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
>         at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
>         at 
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
>         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
>         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:290)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:194)
>         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>         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)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to