mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-09-03 04:26:12 +08:00
Include source of NoSuchMethodError in its failure analysis
Closes gh-15995
This commit is contained in:
parent
55426208ab
commit
51776af45d
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2018 the original author or authors.
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -93,11 +93,19 @@ class NoSuchMethodFailureAnalyzer extends AbstractFailureAnalyzer<NoSuchMethodEr
|
||||
List<URL> candidates, URL actual) {
|
||||
StringWriter description = new StringWriter();
|
||||
PrintWriter writer = new PrintWriter(description);
|
||||
writer.print("An attempt was made to call the method ");
|
||||
writer.print(cause.getMessage());
|
||||
writer.print(" but it does not exist. Its class, ");
|
||||
writer.print(className);
|
||||
writer.println(", is available from the following locations:");
|
||||
writer.println("An attempt was made to call a method that does not"
|
||||
+ " exist. The attempt was made from the following location:");
|
||||
writer.println();
|
||||
writer.print(" ");
|
||||
writer.println(cause.getStackTrace()[0]);
|
||||
writer.println();
|
||||
writer.println("The following method did not exist:");
|
||||
writer.println();
|
||||
writer.print(" ");
|
||||
writer.println(cause.getMessage());
|
||||
writer.println();
|
||||
writer.println("The method's class, " + className
|
||||
+ ", is available from the following locations:");
|
||||
writer.println();
|
||||
for (URL candidate : candidates) {
|
||||
writer.print(" ");
|
||||
|
@ -44,8 +44,11 @@ public class NoSuchMethodFailureAnalyzerTests {
|
||||
assertThat(failure).isNotNull();
|
||||
FailureAnalysis analysis = new NoSuchMethodFailureAnalyzer().analyze(failure);
|
||||
assertThat(analysis).isNotNull();
|
||||
System.out.println(analysis.getDescription());
|
||||
assertThat(analysis.getDescription())
|
||||
.contains("the method javax.servlet.ServletContext.addServlet"
|
||||
.contains(NoSuchMethodFailureAnalyzerTests.class.getName()
|
||||
+ ".createFailure(")
|
||||
.contains("javax.servlet.ServletContext.addServlet"
|
||||
+ "(Ljava/lang/String;Ljavax/servlet/Servlet;)"
|
||||
+ "Ljavax/servlet/ServletRegistration$Dynamic;")
|
||||
.contains("class, javax.servlet.ServletContext,");
|
||||
|
Loading…
Reference in New Issue
Block a user