You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Armin Schrenk <ar...@skymatic.de.INVALID> on 2024/08/15 11:03:43 UTC

Bug with Maven Compiler Plugin when using Textblocks?

Hello everybody,

hope this is the right place to report a possible bug in the Maven 
Compiler plugin. I encountered an issue with the maven compiler plugin.

The problem seems to be a combination of
* a class using unescaped double quotes in Java TextBlocks and
* the same class being registered as a service provider using the 
module-info

Repo of a minimal example: 
https://github.com/infeo/mvnCompilerTextblockIssue

Further info:
* JDK 22.0.2+9 zulu
* maven-compiler 3.13.0
* maven 3.9.7

Seems like the qdox parser stumbles over the quotes, stacktrace is:
```
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution 
default-compile of goal 
org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile failed: 
syntax error @[9,2] in 
file:/C:/Users/Arbeit/Skymatic/mvnCompilerError/src/main/java/org/example/ServiceImpl.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.DirectMethodHandleAccessor.invoke 
(DirectMethodHandleAccessor.java:103)
     at java.lang.reflect.Method.invoke (Method.java:580)
     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:283)
     at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:226)
     at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:407)
     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:348)
     at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: com.thoughtworks.qdox.parser.ParseException: syntax error 
@[9,2] in 
file:/C:/Users/Arbeit/Skymatic/mvnCompilerError/src/main/java/org/example/ServiceImpl.java
     at com.thoughtworks.qdox.parser.impl.Parser.yyerror (Parser.java:1963)
     at com.thoughtworks.qdox.parser.impl.Parser.yyparse (Parser.java:2085)
     at com.thoughtworks.qdox.parser.impl.Parser.parse (Parser.java:1944)
     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:837)
     at 
org.codehaus.plexus.languages.java.jpms.SourceModuleInfoParser.fromSourcePath 
(SourceModuleInfoParser.java:105)
     at 
org.codehaus.plexus.languages.java.jpms.LocationManager.getMainModuleDescriptor 
(LocationManager.java:334)
     at 
org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePaths 
(LocationManager.java:155)
     at org.apache.maven.plugin.compiler.CompilerMojo.preparePaths 
(CompilerMojo.java:247)
     at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute 
(AbstractCompilerMojo.java:854)
     at org.apache.maven.plugin.compiler.CompilerMojo.execute 
(CompilerMojo.java:193)
     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.DirectMethodHandleAccessor.invoke 
(DirectMethodHandleAccessor.java:103)
     at java.lang.reflect.Method.invoke (Method.java:580)
     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:283)
     at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:226)
     at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:407)
     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:348)
     at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
```

If you have any further questions, feel free to ask.

Best regards,

Armin Schrenk

-- 
Armin Schrenk

Skymatic GmbH, Am Hauptbahnhof 6, 53111 Bonn
Sitz der Gesellschaft: Bonn; Amtsgericht Bonn, HRB 22635


Re: Bug with Maven Compiler Plugin when using Textblocks?

Posted by Konrad Windszus <kw...@apache.org>.
Hi Armin,
Please report at https://issues.apache.org/jira/projects/MCOMPILER/summary.
Looks like QDox may have issues with text blocks in general (https://github.com/paul-hammant/qdox/issues/215).

Konrad

> On 15. Aug 2024, at 13:03, Armin Schrenk <ar...@skymatic.de.INVALID> wrote:
> 
> Hello everybody,
> 
> hope this is the right place to report a possible bug in the Maven Compiler plugin. I encountered an issue with the maven compiler plugin.
> 
> The problem seems to be a combination of 
> * a class using unescaped double quotes in Java TextBlocks and 
> * the same class being registered as a service provider using the module-info
> 
> Repo of a minimal example: https://github.com/infeo/mvnCompilerTextblockIssue
> 
> Further info:
> * JDK 22.0.2+9 zulu
> * maven-compiler 3.13.0
> * maven 3.9.7
> 
> Seems like the qdox parser stumbles over the quotes, stacktrace is:
> ```
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile failed: syntax error @[9,2] in file:/C:/Users/Arbeit/Skymatic/mvnCompilerError/src/main/java/org/example/ServiceImpl.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.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
>     at java.lang.reflect.Method.invoke (Method.java:580)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
>     at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
> Caused by: com.thoughtworks.qdox.parser.ParseException: syntax error @[9,2] in file:/C:/Users/Arbeit/Skymatic/mvnCompilerError/src/main/java/org/example/ServiceImpl.java <>
>     at com.thoughtworks.qdox.parser.impl.Parser.yyerror (Parser.java:1963)
>     at com.thoughtworks.qdox.parser.impl.Parser.yyparse (Parser.java:2085)
>     at com.thoughtworks.qdox.parser.impl.Parser.parse (Parser.java:1944)
>     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:837)
>     at org.codehaus.plexus.languages.java.jpms.SourceModuleInfoParser.fromSourcePath (SourceModuleInfoParser.java:105)
>     at org.codehaus.plexus.languages.java.jpms.LocationManager.getMainModuleDescriptor (LocationManager.java:334)
>     at org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePaths (LocationManager.java:155)
>     at org.apache.maven.plugin.compiler.CompilerMojo.preparePaths (CompilerMojo.java:247)
>     at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:854)
>     at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:193)
>     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.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
>     at java.lang.reflect.Method.invoke (Method.java:580)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
>     at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
> ```
> 
> 
> If you have any further questions, feel free to ask.
> 
> Best regards,
> 
> Armin Schrenk
> 
> -- 
> Armin Schrenk
> 
> Skymatic GmbH, Am Hauptbahnhof 6, 53111 Bonn
> Sitz der Gesellschaft: Bonn; Amtsgericht Bonn, HRB 22635