From cc6f321da4da5882d032c956632fec51493c241b Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Wed, 17 Jul 2019 10:11:18 +0200 Subject: [PATCH] Improve detection of NoSuchMethodError on Java 13 Closes gh-17544 --- .../analyzer/NoSuchMethodFailureAnalyzer.java | 28 +++++++++++++------ .../NoSuchMethodFailureAnalyzerTests.java | 24 +++++++++++++--- 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/NoSuchMethodFailureAnalyzer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/NoSuchMethodFailureAnalyzer.java index a9c29d42eb0..10978e96c87 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/NoSuchMethodFailureAnalyzer.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/NoSuchMethodFailureAnalyzer.java @@ -31,12 +31,14 @@ import org.springframework.util.ClassUtils; * NoSuchMethodErrors}. * * @author Andy Wilkinson + * @author Stephane Nicoll */ class NoSuchMethodFailureAnalyzer extends AbstractFailureAnalyzer { @Override protected FailureAnalysis analyze(Throwable rootFailure, NoSuchMethodError cause) { - String className = extractClassName(cause); + String message = cleanMessage(cause); + String className = extractClassName(message); if (className == null) { return null; } @@ -48,24 +50,33 @@ class NoSuchMethodFailureAnalyzer extends AbstractFailureAnalyzer findCandidates(String className) { @@ -87,7 +98,8 @@ class NoSuchMethodFailureAnalyzer extends AbstractFailureAnalyzer candidates, URL actual) { + private String getDescription(NoSuchMethodError cause, String message, String className, List candidates, + URL actual) { StringWriter description = new StringWriter(); PrintWriter writer = new PrintWriter(description); writer.println("An attempt was made to call a method that does not" @@ -99,7 +111,7 @@ class NoSuchMethodFailureAnalyzer extends AbstractFailureAnalyzer