question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Some auto configuration changes were not successfully committed after applying recipe boot-2.7-3.0-dependency-version-update

See original GitHub issue

Describe 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:

  1. Sample from ‘git@github.com:sanagaraj-pivotal/demo-spring-song-app.git’
  2. scan demo-spring-song-app
  3. apply boot-2.7-3.0-dependency-version-update, no expectation.
  4. apply boot-2.7-3.0-upgrade-report
  5. See error

Expected behavior

  1. After the automated recipe boot-2.7-3.0-dependency-version-update is applied, then all the changes should be committed together.

  2. No exception when applying the recipe boot-2.7-3.0-upgrade-report.

Screenshots image

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:open
  • Created 10 months ago
  • Comments:5

github_iconTop GitHub Comments

2reactions
fabapp2commented, Nov 16, 2022

HI @moarychan

You might want to checkout branch webapp-demo which I plan to merge back to main 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 recipe YAMLs 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) Screenshot 2022-11-16 at 00 46 59

1reaction
fabapp2commented, Nov 9, 2022

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.

Read more comments on GitHub >

github_iconTop Results From Across the Web

16. Auto-configuration - Spring
Spring Boot auto-configuration attempts to automatically configure your Spring application based on the jar dependencies that you have added.
Read more >
Allow relative auto-configuration ordering to be ... - GitHub
The auto-configure classes that should have not yet been applied. ... To do that, we may need to make some changes so that ......
Read more >
Disable all Database related auto configuration in Spring Boot
I want to disable all the database related auto configuration on client app, since it won't be requiring database connection. Application should not...
Read more >
Resolving Failed to Configure a DataSource Error - Baeldung
But how do we solve this if we're not yet ready to define our data source? Let's see how to prevent Spring Boot...
Read more >
Spring Boot Auto-configuration - Javatpoint
For example, if the H2 database Jar is present in the classpath and we have not configured any beans related to the database...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found