apache / apache/maven-changes-plugin
Improve error message when using 3.x with 1.x changes.xml file
- Dominant language
- Java
- Stars
- 15
- Forks
- 22
- Avg merge
- 8h 1m
- Merged PRs (30d)
- 3
Description
### New feature, improvement proposal
I received the following confusing error message when using my old changes file (sticking to https://maven.apache.org/xsd/changes-1.0.0.xsd)
```
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.21.0:site (default-site) on project ...: Failed to render site: Error generating maven-changes-plugin:3.0.0-M3:changes-report report: An error occurred when parsing the changes.xml file: TEXT must be immediately followed by END_TAG and not START_TAG (position: START_TAG seen ... Deleted the erroneous code.\n ... @38:36) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.21.0:site (default-site) on project different-doxia-versions: Failed to render site
...
Caused by: org.apache.maven.plugins.changes.ChangesXMLRuntimeException: An error occurred when parsing the changes.xml file
at org.apache.maven.plugins.changes.ChangesXML. (ChangesXML.java:100)
at org.apache.maven.plugins.changes.ChangesReport.getChangesFromFile (ChangesReport.java:372)
at org.apache.maven.plugins.changes.ChangesReport.executeReport (ChangesReport.java:216)
at org.apache.maven.reporting.AbstractMavenReport.generate (AbstractMavenReport.java:358)
at org.apache.maven.plugins.site.render.ReportDocumentRenderer.renderDocument (ReportDocumentRenderer.java:199)
at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render (DefaultSiteRenderer.java:302)
at org.apache.maven.plugins.site.render.SiteMojo.renderNonDoxiaDocuments (SiteMojo.java:282)
at org.apache.maven.plugins.site.render.SiteMojo.renderLocale (SiteMojo.java:147)
at org.apache.maven.plugins.site.render.SiteMojo.execute (SiteMojo.java:112)
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:919)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:285)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:207)
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: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)
Caused by: org.codehaus.plexus.util.xml.pull.XmlPullParserException: TEXT must be immediately followed by END_TAG and not START_TAG (position: START_TAG seen ... Deleted the erroneous code.\n ... @38:36)
at org.codehaus.plexus.util.xml.pull.MXParser.nextText (MXParser.java:1108)
at org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader.parseAction (ChangesXpp3Reader.java:747)
at org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader.parseRelease (ChangesXpp3Reader.java:1098)
at org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader.parseBody (ChangesXpp3Reader.java:827)
at org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader.parseChangesDocument (ChangesXpp3Reader.java:880)
at org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader.read (ChangesXpp3Reader.java:606)
at org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader.read (ChangesXpp3Reader.java:637)
at org.apache.maven.plugins.changes.model.io.xpp3.ChangesXpp3Reader.read (ChangesXpp3Reader.java:668)
at org.apache.maven.plugins.changes.ChangesXML. (ChangesXML.java:74)
```
It would be nice to have a more explicit error message which derives from the referenced namespace that the issue is caused by a non supported Changes file version.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in ChangesXML.java and follow the parsing path through ChangesXpp3Reader.parseAction, using the reported 1.x changes.xml example as a reproduction. Check how the referenced namespace is read and how parse failures are wrapped. Done means an unsupported Changes file version produces an explicit, version-related error instead of the generic XML parser message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100