XiaoPangxie732 opened a new issue, #314:
URL: https://github.com/apache/maven-compiler-plugin/issues/314

   ### Affected version
   
   3.14.0
   
   ### Bug description
   
   I have a module-info.java with "uses" and "provides" statements in it. When 
I tried compiling, the compilation would fail if the service/service 
implementation classes declared in module-info.java has annotated type 
parameters(e.g. method declaration like `void m(List<@Nullable String> l);`).
   
   Here are the stacktraces:
   
   ```
   [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-compiler-plugin:3.14.0:compile (default-compile) 
on project ***: Execution default-compile of goal 
org.apache.maven.plugins:maven-compiler-plugin:3.14.0:compile failed: syntax 
error @[45,33] in file:/F:/***.java -> [Help 1]
   org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute 
goal org.apache.maven.plugins:maven-compiler-plugin:3.14.0:compile 
(default-compile) on project ***: Execution default-compile of goal 
org.apache.maven.plugins:maven-compiler-plugin:3.14.0:compile failed: syntax 
error @[45,33] in file:/F:/***.java
       at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 
(MojoExecutor.java:333)
       at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute 
(MojoExecutor.java:316)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:212)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:174)
       at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 
(MojoExecutor.java:75)
       at org.apache.maven.lifecycle.internal.MojoExecutor$1.run 
(MojoExecutor.java:162)
       at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute 
(DefaultMojosExecutionStrategy.java:39)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:159)
       at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:105)
       at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:73)
       at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
 (SingleThreadedBuilder.java:53)
       at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
(LifecycleStarter.java:118)
       at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
       at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
       at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
       at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
       at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
       at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
       at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
       at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
       at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke (Method.java:568)
       at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:255)
       at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:201)
       at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:361)
       at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:314)
       at org.codehaus.classworlds.Launcher.main (Launcher.java:41)
   Caused by: org.apache.maven.plugin.PluginExecutionException: Execution 
default-compile of goal 
org.apache.maven.plugins:maven-compiler-plugin:3.14.0:compile failed: syntax 
error @[45,33] in file:/F:/***.java
       at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
(DefaultBuildPluginManager.java:133)
       at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 
(MojoExecutor.java:328)
       at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute 
(MojoExecutor.java:316)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:212)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:174)
       at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 
(MojoExecutor.java:75)
       at org.apache.maven.lifecycle.internal.MojoExecutor$1.run 
(MojoExecutor.java:162)
       at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute 
(DefaultMojosExecutionStrategy.java:39)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:159)
       at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:105)
       at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:73)
       at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
 (SingleThreadedBuilder.java:53)
       at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
(LifecycleStarter.java:118)
       at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
       at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
       at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
       at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
       at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
       at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
       at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
       at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
       at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke (Method.java:568)
       at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:255)
       at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:201)
       at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:361)
       at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:314)
       at org.codehaus.classworlds.Launcher.main (Launcher.java:41)
   Caused by: com.thoughtworks.qdox.parser.ParseException: syntax error 
@[45,33] in file:/F:/***.java
       at com.thoughtworks.qdox.parser.impl.Parser.yyerror (Parser.java:2025)
       at com.thoughtworks.qdox.parser.impl.Parser.yyparse (Parser.java:2147)
       at com.thoughtworks.qdox.parser.impl.Parser.parse (Parser.java:2006)
       at com.thoughtworks.qdox.library.SourceLibrary.parse 
(SourceLibrary.java:232)
       at com.thoughtworks.qdox.library.SourceLibrary.parse 
(SourceLibrary.java:190)
       at 
com.thoughtworks.qdox.library.SourceFolderLibrary.getClassFromSourceFile 
(SourceFolderLibrary.java:159)
       at com.thoughtworks.qdox.library.SourceFolderLibrary.resolveJavaClass 
(SourceFolderLibrary.java:112)
       at com.thoughtworks.qdox.library.AbstractClassLibrary.getJavaClass 
(AbstractClassLibrary.java:101)
       at com.thoughtworks.qdox.library.AbstractClassLibrary.getJavaClass 
(AbstractClassLibrary.java:94)
       at com.thoughtworks.qdox.type.TypeResolver.getJavaClass 
(TypeResolver.java:87)
       at com.thoughtworks.qdox.model.impl.DefaultJavaType.resolveRealClass 
(DefaultJavaType.java:282)
       at com.thoughtworks.qdox.model.impl.DefaultJavaType.getName 
(DefaultJavaType.java:843)
       at 
org.codehaus.plexus.languages.java.jpms.SourceModuleInfoParser.fromSourcePath 
(SourceModuleInfoParser.java:88)
       at 
org.codehaus.plexus.languages.java.jpms.LocationManager.getMainModuleDescriptor 
(LocationManager.java:302)
       at org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePaths 
(LocationManager.java:143)
       at org.apache.maven.plugin.compiler.CompilerMojo.preparePaths 
(CompilerMojo.java:274)
       at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute 
(AbstractCompilerMojo.java:932)
       at org.apache.maven.plugin.compiler.CompilerMojo.execute 
(CompilerMojo.java:225)
       at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
(DefaultBuildPluginManager.java:126)
       at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 
(MojoExecutor.java:328)
       at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute 
(MojoExecutor.java:316)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:212)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:174)
       at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 
(MojoExecutor.java:75)
       at org.apache.maven.lifecycle.internal.MojoExecutor$1.run 
(MojoExecutor.java:162)
       at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute 
(DefaultMojosExecutionStrategy.java:39)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:159)
       at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:105)
       at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:73)
       at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
 (SingleThreadedBuilder.java:53)
       at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
(LifecycleStarter.java:118)
       at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
       at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
       at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
       at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
       at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
       at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
       at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
       at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
       at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke (Method.java:568)
       at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:255)
       at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:201)
       at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:361)
       at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:314)
       at org.codehaus.classworlds.Launcher.main (Launcher.java:41)
   ```
   
   The direct cause is QDox's parser bug, and here are the related issues:
   https://github.com/paul-hammant/qdox/issues/182
   https://github.com/paul-hammant/qdox/issues/181
   
   I wonder why Maven would need to parse the module-info.java. Also, it looks 
like that QDox is under inactive development, so I wonder if there is any 
workaround.(The original content is from a mail I posted months ago in 
maven-users but no one replied. QDox received some commits after that, but I 
don't know whether the issue was fixed. I updated the version of the compiler 
plugin in this ticket as well.)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to