apache / apache/maven-changes-plugin

Improve error message when using 3.x with 1.x changes.xml file

Offen
#633 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Java
Sterne
15
Forks
22
Ø Merge
8 Std. 1 Min.
Gemergte PRs (30 T.)
3

Beschreibung

### 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.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne in ChangesXML.java und verfolge den Parsing-Pfad durch ChangesXpp3Reader.parseAction, wobei du das gemeldete 1.x changes.xml-Beispiel zur Reproduktion verwendest. Prüfe, wie der referenzierte Namespace gelesen wird und wie Parsing-Fehler verpackt werden. Die Aufgabe ist abgeschlossen, wenn eine nicht unterstützte Changes-Dateiversion einen expliziten versionsbezogenen Fehler anstelle der generischen XML-Parser-Meldung erzeugt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
build-system
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.