apache / apache/maven-changes-plugin
NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "target" is null
- 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