Armin Schrenk created MCOMPILER-598:
---------------------------------------

             Summary: Syntax error in qdox parser for unescaped qoutes inside 
textblock of a service provider class
                 Key: MCOMPILER-598
                 URL: https://issues.apache.org/jira/browse/MCOMPILER-598
             Project: Maven Compiler Plugin
          Issue Type: Bug
    Affects Versions: 3.13.0
         Environment: * JDK 22.0.2+9 zulu
* maven 3.9.8
            Reporter: Armin Schrenk
         Attachments: mvnCompilerTextblockIssue-main.zip

A service provider class containing a text block with unescaped double quotes 
cannot be compiled with the maven compiler plugin. The parser of the qdox 
library detect the textblock as a syntax error.

Workaround: Escape all double quotes inside a textblock.

Example code: Attached, otherwise see 
https://github.com/infeo/mvnCompilerTextblockIssue

Stacktrace:
```
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)
```



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to