apache / apache/maven-changes-plugin

NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "target" is null

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

Beschreibung

### Affected version

3.0.0-M3

### Bug description

Whatever the actual problem is, the plugin should log an actionable error message instead of throwing a `NullPointerException`.

```
auncher.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: java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "target" is null
at java.lang.String.replace (String.java:3085)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke (Method.java:580)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke (UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke (UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute (ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute (ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.value (ASTReference.java:704)
at org.apache.velocity.runtime.parser.node.ASTExpression.value (ASTExpression.java:75)
at org.apache.velocity.runtime.parser.node.ASTSetDirective.render (ASTSetDirective.java:242)
at org.apache.velocity.runtime.parser.node.SimpleNode.render (SimpleNode.java:439)
at org.apache.velocity.Template.merge (Template.java:358)
at org.apache.velocity.Template.merge (Template.java:262)
at org.apache.maven.plugins.changes.announcement.AnnouncementMojo.processTemplate (AnnouncementMojo.java:624)
at org.apache.maven.plugins.changes.announcement.AnnouncementMojo.doGenerate (AnnouncementMojo.java:579)
at org.apache.maven.plugins.changes.announcement.AnnouncementMojo.doGenerate (AnnouncementMojo.java:536)
at org.apache.maven.plugins.changes.announcement.AnnouncementMojo.execute (AnnouncementMojo.java:519)
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: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)
```
Reproduce with:
```
git clone https://github.com/apache/commons-fileupload.git
cd commons-fileupload
git checkout f1028401e3d59bd42aee9ab4d26995991db1aadc
mvn -e --non-recursive changes:announcement-generate -Prelease-notes -Dchanges.version=1.6.0
```

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Führe die bereitgestellte Maven-Reproduktion gegen den Commit f1028401e3d59bd42aee9ab4d26995991db1aadc aus und untersuche anschließend AnnouncementMojo.processTemplate und doGenerate rund um die gemeldeten AnnouncementMojo.java-Zeilen 536, 579 und 624. Erledigt ist die Aufgabe, wenn dieselbe ungültige Eingabe einen verwertbaren protokollierten Fehler statt der NullPointerException erzeugt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
build-system, tooling
Issue-Typ
Bug
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.