openrewrite / rewrite

Automated mass refactoring of source code.
https://docs.openrewrite.org
Apache License 2.0
2.09k stars 312 forks source link

NullpointerException for AddDependency #2282

Closed jdelobel closed 1 year ago

jdelobel commented 1 year ago

I when i run rewrite:run, i have a null pointerException. I have a lot AddDependency so i don't know which is causing the error.

OPEN_REWRITE_MAVEN_PLUGIN_VERSION="4.34.0" OPEN_REWRITE_JAVA_VERSION="1.11.0" OPEN_REWRITE_TESTING_VERSION="1.28.0"

[INFO] Running recipe(s)... [WARNING] java.lang.NullPointerException [DEBUG] org.openrewrite.RecipeRunException: java.lang.NullPointerException at org.openrewrite.TreeVisitor.visit (TreeVisitor.java:253) at org.openrewrite.TreeVisitor.visitNonNull (TreeVisitor.java:164) at org.openrewrite.maven.AddDependency$1.visitDocument (AddDependency.java:202) at org.openrewrite.maven.AddDependency$1.visitDocument (AddDependency.java:175) at org.openrewrite.xml.tree.Xml$Document.acceptXml (Xml.java:172) at org.openrewrite.xml.tree.Xml.accept (Xml.java:54) at org.openrewrite.TreeVisitor.visit (TreeVisitor.java:206) at org.openrewrite.maven.AddDependency.lambda$visit$3 (AddDependency.java:204) at java.util.Optional.map (Optional.java:215) at org.openrewrite.maven.AddDependency.lambda$visit$4 (AddDependency.java:175) at org.openrewrite.internal.ListUtils.lambda$map$0 (ListUtils.java:141) at org.openrewrite.internal.ListUtils.map (ListUtils.java:123) at org.openrewrite.internal.ListUtils.map (ListUtils.java:141) at org.openrewrite.maven.AddDependency.visit (AddDependency.java:174) at org.openrewrite.RecipeScheduler.scheduleVisit (RecipeScheduler.java:287) at org.openrewrite.RecipeScheduler.scheduleVisit (RecipeScheduler.java:348) at org.openrewrite.RecipeScheduler.scheduleVisit (RecipeScheduler.java:348) at org.openrewrite.RecipeScheduler.scheduleRun (RecipeScheduler.java:95) at org.openrewrite.Recipe.run (Recipe.java:286) at org.openrewrite.Recipe.run (Recipe.java:278) at org.openrewrite.Recipe.run (Recipe.java:274) at org.openrewrite.maven.AbstractRewriteMojo.listResults (AbstractRewriteMojo.java:215) at org.openrewrite.maven.AbstractRewriteRunMojo.execute (AbstractRewriteRunMojo.java:48) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:301) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:211) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:165) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:157) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:121) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:127) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293) at org.apache.maven.cli.MavenCli.main (MavenCli.java:196) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347) Caused by: java.lang.NullPointerException at java.util.regex.Matcher.getTextLength (Matcher.java:1283) at java.util.regex.Matcher.reset (Matcher.java:309) at java.util.regex.Matcher. (Matcher.java:229) at java.util.regex.Pattern.matcher (Pattern.java:1093) at org.openrewrite.semver.HyphenRange.build (HyphenRange.java:47) at org.openrewrite.semver.Semver.validate (Semver.java:48) at org.openrewrite.maven.AddDependencyVisitor.visitDocument (AddDependencyVisitor.java:76) at org.openrewrite.maven.AddDependencyVisitor.visitDocument (AddDependencyVisitor.java:37) at org.openrewrite.xml.tree.Xml$Document.acceptXml (Xml.java:172) at org.openrewrite.xml.tree.Xml.accept (Xml.java:54) at org.openrewrite.TreeVisitor.visit (TreeVisitor.java:206) at org.openrewrite.TreeVisitor.visitNonNull (TreeVisitor.java:164) at org.openrewrite.maven.AddDependency$1.visitDocument (AddDependency.java:202) at org.openrewrite.maven.AddDependency$1.visitDocument (AddDependency.java:175) at org.openrewrite.xml.tree.Xml$Document.acceptXml (Xml.java:172) at org.openrewrite.xml.tree.Xml.accept (Xml.java:54) at org.openrewrite.TreeVisitor.visit (TreeVisitor.java:206) at org.openrewrite.maven.AddDependency.lambda$visit$3 (AddDependency.java:204) at java.util.Optional.map (Optional.java:215) at org.openrewrite.maven.AddDependency.lambda$visit$4 (AddDependency.java:175) at org.openrewrite.internal.ListUtils.lambda$map$0 (ListUtils.java:141) at org.openrewrite.internal.ListUtils.map (ListUtils.java:123) at org.openrewrite.internal.ListUtils.map (ListUtils.java:141) at org.openrewrite.maven.AddDependency.visit (AddDependency.java:174) at org.openrewrite.RecipeScheduler.scheduleVisit (RecipeScheduler.java:287) at org.openrewrite.RecipeScheduler.scheduleVisit (RecipeScheduler.java:348) at org.openrewrite.RecipeScheduler.scheduleVisit (RecipeScheduler.java:348) at org.openrewrite.RecipeScheduler.scheduleRun (RecipeScheduler.java:95) at org.openrewrite.Recipe.run (Recipe.java:286) at org.openrewrite.Recipe.run (Recipe.java:278) at org.openrewrite.Recipe.run (Recipe.java:274) at org.openrewrite.maven.AbstractRewriteMojo.listResults (AbstractRewriteMojo.java:215) at org.openrewrite.maven.AbstractRewriteRunMojo.execute (AbstractRewriteRunMojo.java:48) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:301) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:211) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:165) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:157) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:121) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:127) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293) at org.apache.maven.cli.MavenCli.main (MavenCli.java:196) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

pway99 commented 1 year ago

It looks like the Semver validation is failing, can you double check that the AddDependency recipe is being constructed with a valid version.

Caused by: java.lang.NullPointerException at java.util.regex.Matcher.getTextLength (Matcher.java:1283) at java.util.regex.Matcher.reset (Matcher.java:309) at java.util.regex.Matcher. (Matcher.java:229) at java.util.regex.Pattern.matcher (Pattern.java:1093) at org.openrewrite.semver.HyphenRange.build (HyphenRange.java:47) at org.openrewrite.semver.Semver.validate (Semver.java:48)

jdelobel commented 1 year ago

Hi,

Sorry to bother you. This is an error on my side. I forgot a version attribute on one of my declarations.

Question: Why do I have to add the version in the AddDependency recipe if it is already specified in the AddManagedDependency?

pway99 commented 1 year ago

Hi,

Question: Why do I have to add the version in the AddDependency recipe if it is already specified in the AddManagedDependency?

I am not sure I fully understand, AddDependency and AddManagedDependency are separate recipes can you provide some more info?

pway99 commented 1 year ago

Hi @jdelobel, please don't hesitate to re-open if you have any further questions