Ensure one time logging for request details

Closes gh-26969
This commit is contained in:
Rossen Stoyanchev
2021-09-06 13:53:30 +01:00
parent 5ea7592d70
commit 1b3fd9edff
2 changed files with 18 additions and 9 deletions

View File

@@ -79,6 +79,9 @@ public class ExchangeResult {
@Nullable
private final Object mockServerResult;
/** Ensure single logging, e.g. for expectAll. */
private boolean diagnosticsLogged;
/**
* Create an instance with an HTTP request and response along with promises
@@ -121,6 +124,7 @@ public class ExchangeResult {
this.timeout = other.timeout;
this.uriTemplate = other.uriTemplate;
this.mockServerResult = other.mockServerResult;
this.diagnosticsLogged = other.diagnosticsLogged;
}
@@ -227,7 +231,8 @@ public class ExchangeResult {
assertion.run();
}
catch (AssertionError ex) {
if (logger.isErrorEnabled()) {
if (!this.diagnosticsLogged && logger.isErrorEnabled()) {
this.diagnosticsLogged = true;
logger.error("Request details for assertion failure:\n" + this);
}
throw ex;