mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-07-05 07:29:22 +02:00
Enhance trace api to set codes which are accepted as successful. This way requests can be traced as successful even if the response code is 4xx or 5xx.
This commit is contained in:
@@ -52,6 +52,7 @@ import java.io.OutputStream;
|
||||
import java.net.*;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
@@ -206,7 +207,7 @@ public class DefaultAdvancedHttpClient extends AdvancedHttpClient
|
||||
try {
|
||||
DefaultAdvancedHttpResponse response = doRequest(request);
|
||||
span.label("status", response.getStatus());
|
||||
if (!response.isSuccessful()) {
|
||||
if (isFailedRequest(request, response)) {
|
||||
span.failed();
|
||||
}
|
||||
return response;
|
||||
@@ -219,6 +220,13 @@ public class DefaultAdvancedHttpClient extends AdvancedHttpClient
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isFailedRequest(BaseHttpRequest<?> request, AdvancedHttpResponse responseStatus) {
|
||||
if (Arrays.stream(request.getAcceptedStatus()).anyMatch(code -> code == responseStatus.getStatus())) {
|
||||
return false;
|
||||
}
|
||||
return !responseStatus.isSuccessful();
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
private DefaultAdvancedHttpResponse doRequest(BaseHttpRequest<?> request) throws IOException {
|
||||
HttpURLConnection connection = openConnection(request, new URL(request.getUrl()));
|
||||
|
||||
Reference in New Issue
Block a user