Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Cannot Reproduce
-
Affects Version/s: 1.10
-
Fix Version/s: None
-
Component/s: Parser
-
Labels:None
-
Testcase included:yes
-
Number of attachments :
Description
The following code snippet:
import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import java.io.File; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @goal mymojo */ public class MyMojo extends AbstractMojo { // it seems that first field must have an initializer containing square brackets [] // followed by a field with generic class <> ? private List includes = Arrays.asList(new String[]{"abc"}); private Map<String,String> methodContexts = new HashMap<String, String>(); public void execute() throws MojoExecutionException, MojoFailureException { } }
results in a following error:
com.thoughtworks.qdox.parser.ParseException: syntax error @[22,75] in file:/d:/Work/maven-clover2-plugin-
a/com/atlassian/maven/plugin/clover/internal/MyMojo.java
at com.thoughtworks.qdox.parser.impl.Parser.yyerror(Parser.java:992)
at com.thoughtworks.qdox.parser.impl.Parser.yyparse(Parser.java:1298)
at com.thoughtworks.qdox.parser.impl.Parser.parse(Parser.java:973)
at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:322)
at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:354)
at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:350)
at com.thoughtworks.qdox.JavaDocBuilder$2.visitFile(JavaDocBuilder.java:440)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:43)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34)
at com.thoughtworks.qdox.directorywalker.DirectoryScanner.scan(DirectoryScanner.java:52)
at com.thoughtworks.qdox.JavaDocBuilder.addSourceTree(JavaDocBuilder.java:437)
at com.thoughtworks.qdox.JavaDocBuilder.addSourceTree(JavaDocBuilder.java:426)
at org.apache.maven.tools.plugin.extractor.java.JavaMojoDescriptorExtractor.discoverClasses(JavaM
tractor.java:628)
at org.apache.maven.tools.plugin.extractor.java.JavaMojoDescriptorExtractor.execute(JavaMojoDescr
java:592)
at org.apache.maven.tools.plugin.scanner.DefaultMojoScanner.populatePluginDescriptor(DefaultMojoS
)
at org.apache.maven.plugin.plugin.AbstractGeneratorMojo.execute(AbstractGeneratorMojo.java:171)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleE
6)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecy
a:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecut
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
I've noticed that these two fields interact with each other somehow. Commenting one of them removes the error. Also changing field order removes the error.
Activity
| Field | Original Value | New Value |
|---|---|---|
| Status | Open [ 1 ] | Closed [ 6 ] |
| Assignee | Robert Scholte [ rfscholte ] | |
| Resolution | Cannot Reproduce [ 5 ] |
Seems to be fixed in 1.11.
To confirm yourself, download the QDox jar from Maven Central and execute
java -cp qdox-1.11.jar com.thoughtworks.qdox.tools.QDoxTester MyMojo.java
I've just verified on the trunk of the maven-javadoc-plugin that it's already using QDox 1.12. I can push that to 1.12.1, so those latest bugfixes are included as well.