Some auto configuration changes were not successfully committed after applying recipe boot-2.7-3.0-dependency-version-update
See original GitHub issueDescribe the bug
Upgrade the Spring Boot 2.7 application to Spring Boot 3, when the recipe boot-2.7-3.0-dependency-version-update
applied, the auto-configuration files and java code changes were not successfully committed, but the commit log SBM: applied recipe 'boot-2.7-3.0-dependency-version-update'
was generated and only contains the pom.xml file change, not error message, but the result is not expected, right?
Then apply the recipe boot-2.7-3.0-upgrade-report
, the NPE will be thrown out.
To Reproduce Steps to reproduce the behavior:
- Sample from ‘git@github.com:sanagaraj-pivotal/demo-spring-song-app.git’
- scan demo-spring-song-app
- apply
boot-2.7-3.0-dependency-version-update
, no expectation. - apply
boot-2.7-3.0-upgrade-report
- See error
Expected behavior
-
After the automated recipe
boot-2.7-3.0-dependency-version-update
is applied, then all the changes should be committed together. -
No exception when applying the recipe
boot-2.7-3.0-upgrade-report
.
Screenshots
Stacktrace
demo-spring-song-app:> apply boot-2.7-3.0-upgrade-report
Applying recipe 'boot-2.7-3.0-upgrade-report'
Maven 100% │███████████████████████████│ 2/2 (0:00:00 / 0:00:00)
. Create report17:05:56.851 [ForkJoinPool-1-worker-13] ERROR o.s.s.o.RewriteExecutionContext - Exception occured!
org.openrewrite.UncaughtVisitorException: java.lang.NullPointerException: Cannot invoke "org.openrewrite.java.tree.JavaType$Method.getDeclaringType()" because the return value of "org.openrewrite.java.tree.J$MethodInvocation.getMethodType()" is null
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:253)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitLeftPadded(JavaVisitor.java:1254)
at org.openrewrite.java.JavaVisitor.visitVariable(JavaVisitor.java:1168)
at org.openrewrite.java.JavaIsoVisitor.visitVariable(JavaIsoVisitor.java:326)
at org.openrewrite.java.JavaIsoVisitor.visitVariable(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$VariableDeclarations$NamedVariable.acceptJava(J.java:5258)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitRightPadded(JavaVisitor.java:1226)
at org.openrewrite.java.JavaVisitor.lambda$visitVariableDeclarations$27(JavaVisitor.java:888)
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.java.JavaVisitor.visitVariableDeclarations(JavaVisitor.java:888)
at org.openrewrite.java.JavaIsoVisitor.visitVariableDeclarations(JavaIsoVisitor.java:240)
at org.openrewrite.java.JavaIsoVisitor.visitVariableDeclarations(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$VariableDeclarations.acceptJava(J.java:5149)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitRightPadded(JavaVisitor.java:1226)
at org.openrewrite.java.JavaVisitor.lambda$visitBlock$4(JavaVisitor.java:367)
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.java.JavaVisitor.visitBlock(JavaVisitor.java:366)
at org.openrewrite.java.JavaIsoVisitor.visitBlock(JavaIsoVisitor.java:94)
at org.openrewrite.java.JavaIsoVisitor.visitBlock(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$Block.acceptJava(J.java:745)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitMethodDeclaration(JavaVisitor.java:810)
at org.openrewrite.java.JavaIsoVisitor.visitMethodDeclaration(JavaIsoVisitor.java:225)
at org.openrewrite.java.JavaIsoVisitor.visitMethodDeclaration(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$MethodDeclaration.acceptJava(J.java:3221)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitRightPadded(JavaVisitor.java:1226)
at org.openrewrite.java.JavaVisitor.lambda$visitBlock$4(JavaVisitor.java:367)
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.java.JavaVisitor.visitBlock(JavaVisitor.java:366)
at org.openrewrite.java.JavaIsoVisitor.visitBlock(JavaIsoVisitor.java:94)
at org.openrewrite.java.JavaIsoVisitor.visitBlock(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$Block.acceptJava(J.java:745)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitClassDeclaration(JavaVisitor.java:447)
at org.openrewrite.java.JavaIsoVisitor.visitClassDeclaration(JavaIsoVisitor.java:114)
at org.openrewrite.java.JavaIsoVisitor.visitClassDeclaration(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$ClassDeclaration.acceptJava(J.java:1069)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.lambda$visitCompilationUnit$10(JavaVisitor.java:466)
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.java.JavaVisitor.visitCompilationUnit(JavaVisitor.java:466)
at org.openrewrite.java.JavaIsoVisitor.visitCompilationUnit(JavaIsoVisitor.java:119)
at org.openrewrite.java.JavaIsoVisitor.visitCompilationUnit(JavaIsoVisitor.java:31)
at org.openrewrite.java.JavaVisitor.visitJavaSourceFile(JavaVisitor.java:454)
at org.openrewrite.java.JavaIsoVisitor.visitJavaSourceFile(JavaIsoVisitor.java:39)
at org.openrewrite.java.JavaIsoVisitor.visitJavaSourceFile(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$CompilationUnit.acceptJava(J.java:1351)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.RecipeScheduler.lambda$scheduleVisit$5(RecipeScheduler.java:241)
at org.openrewrite.RecipeScheduler.lambda$mapAsync$0(RecipeScheduler.java:49)
at org.openrewrite.scheduling.ForkJoinScheduler.lambda$schedule$0(ForkJoinScheduler.java:41)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1375)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.NullPointerException: Cannot invoke "org.openrewrite.java.tree.JavaType$Method.getDeclaringType()" because the return value of "org.openrewrite.java.tree.J$MethodInvocation.getMethodType()" is null
at org.springframework.sbm.boot.upgrade_27_30.openrewrite.SecurityManagerUsagesFinder$1.visitMethodInvocation(SecurityManagerUsagesFinder.java:47)
at org.springframework.sbm.boot.upgrade_27_30.openrewrite.SecurityManagerUsagesFinder$1.visitMethodInvocation(SecurityManagerUsagesFinder.java:41)
at org.openrewrite.java.tree.J$MethodInvocation.acceptJava(J.java:3474)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
... 81 common frames omitted
17:05:56.857 [ForkJoinPool-1-worker-19] ERROR o.s.s.o.RewriteExecutionContext - Exception occured!
org.openrewrite.UncaughtVisitorException: java.lang.NullPointerException: Cannot invoke "org.openrewrite.java.tree.JavaType$Method.getDeclaringType()" because the return value of "org.openrewrite.java.tree.J$MethodInvocation.getMethodType()" is null
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:253)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitLeftPadded(JavaVisitor.java:1254)
at org.openrewrite.java.JavaVisitor.visitVariable(JavaVisitor.java:1168)
at org.openrewrite.java.JavaIsoVisitor.visitVariable(JavaIsoVisitor.java:326)
at org.openrewrite.java.JavaIsoVisitor.visitVariable(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$VariableDeclarations$NamedVariable.acceptJava(J.java:5258)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitRightPadded(JavaVisitor.java:1226)
at org.openrewrite.java.JavaVisitor.lambda$visitVariableDeclarations$27(JavaVisitor.java:888)
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.java.JavaVisitor.visitVariableDeclarations(JavaVisitor.java:888)
at org.openrewrite.java.JavaIsoVisitor.visitVariableDeclarations(JavaIsoVisitor.java:240)
at org.openrewrite.java.JavaIsoVisitor.visitVariableDeclarations(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$VariableDeclarations.acceptJava(J.java:5149)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitRightPadded(JavaVisitor.java:1226)
at org.openrewrite.java.JavaVisitor.lambda$visitBlock$4(JavaVisitor.java:367)
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.java.JavaVisitor.visitBlock(JavaVisitor.java:366)
at org.openrewrite.java.JavaIsoVisitor.visitBlock(JavaIsoVisitor.java:94)
at org.openrewrite.java.JavaIsoVisitor.visitBlock(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$Block.acceptJava(J.java:745)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitMethodDeclaration(JavaVisitor.java:810)
at org.openrewrite.java.JavaIsoVisitor.visitMethodDeclaration(JavaIsoVisitor.java:225)
at org.openrewrite.java.JavaIsoVisitor.visitMethodDeclaration(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$MethodDeclaration.acceptJava(J.java:3221)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitRightPadded(JavaVisitor.java:1226)
at org.openrewrite.java.JavaVisitor.lambda$visitBlock$4(JavaVisitor.java:367)
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.java.JavaVisitor.visitBlock(JavaVisitor.java:366)
at org.openrewrite.java.JavaIsoVisitor.visitBlock(JavaIsoVisitor.java:94)
at org.openrewrite.java.JavaIsoVisitor.visitBlock(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$Block.acceptJava(J.java:745)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.visitClassDeclaration(JavaVisitor.java:447)
at org.openrewrite.java.JavaIsoVisitor.visitClassDeclaration(JavaIsoVisitor.java:114)
at org.openrewrite.java.JavaIsoVisitor.visitClassDeclaration(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$ClassDeclaration.acceptJava(J.java:1069)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.TreeVisitor.visitAndCast(TreeVisitor.java:285)
at org.openrewrite.java.JavaVisitor.lambda$visitCompilationUnit$10(JavaVisitor.java:466)
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.java.JavaVisitor.visitCompilationUnit(JavaVisitor.java:466)
at org.openrewrite.java.JavaIsoVisitor.visitCompilationUnit(JavaIsoVisitor.java:119)
at org.openrewrite.java.JavaIsoVisitor.visitCompilationUnit(JavaIsoVisitor.java:31)
at org.openrewrite.java.JavaVisitor.visitJavaSourceFile(JavaVisitor.java:454)
at org.openrewrite.java.JavaIsoVisitor.visitJavaSourceFile(JavaIsoVisitor.java:39)
at org.openrewrite.java.JavaIsoVisitor.visitJavaSourceFile(JavaIsoVisitor.java:31)
at org.openrewrite.java.tree.J$CompilationUnit.acceptJava(J.java:1351)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
at org.openrewrite.RecipeScheduler.lambda$scheduleVisit$5(RecipeScheduler.java:241)
at org.openrewrite.RecipeScheduler.lambda$mapAsync$0(RecipeScheduler.java:49)
at org.openrewrite.scheduling.ForkJoinScheduler.lambda$schedule$0(ForkJoinScheduler.java:41)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1375)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.NullPointerException: Cannot invoke "org.openrewrite.java.tree.JavaType$Method.getDeclaringType()" because the return value of "org.openrewrite.java.tree.J$MethodInvocation.getMethodType()" is null
at org.springframework.sbm.boot.upgrade_27_30.openrewrite.SecurityManagerUsagesFinder$1.visitMethodInvocation(SecurityManagerUsagesFinder.java:47)
at org.springframework.sbm.boot.upgrade_27_30.openrewrite.SecurityManagerUsagesFinder$1.visitMethodInvocation(SecurityManagerUsagesFinder.java:41)
at org.openrewrite.java.tree.J$MethodInvocation.acceptJava(J.java:3474)
at org.openrewrite.java.tree.J.accept(J.java:60)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:206)
... 81 common frames omitted
[ok] Create report
Desktop (please complete the following information):
- OS: [Windows 11]
- Version [0.12]
Additional context
Issue Analytics
- State:
- Created 10 months ago
- Comments:5
Top GitHub Comments
HI @moarychan
You might want to checkout branch
webapp-demo
which I plan to merge back tomain
very soon 🤞 The new capability will use a web application to provide a descriptive report from where the migration recipes can be applied.If you want to look into it, the web app and report recipe
YAML
and the migration recipeYAML
s should be a good start. I will start preparing a demo here today. Your feedback is, as always, very appreciated!The report will look (something) like this (work in progress)
Hi @moarychan
Thank you for giving it a try and reporting issues! 🚀 We’re in the process of changing the reporting/migration approach and I hope the new setup will be more stable and “easier” to use. We will look into this asap.