fix: back to use getRawStatusCode

pull/1582/head
fishtailfu 4 months ago
parent 1dddfdad7e
commit da303ff8d5

@ -40,7 +40,7 @@ public class PolarisResultToErrorCode implements ResultToErrorCode {
public int onError(Throwable e) {
if (checkClassExist("org.springframework.web.client.RestClientResponseException")
&& e instanceof RestClientResponseException) {
return ((RestClientResponseException) e).getStatusCode().value();
return ((RestClientResponseException) e).getRawStatusCode();
}
else if (checkClassExist("feign.FeignException")
&& e instanceof FeignException) {
@ -48,10 +48,10 @@ public class PolarisResultToErrorCode implements ResultToErrorCode {
}
else if (checkClassExist("org.springframework.web.reactive.function.client.WebClientResponseException")
&& e instanceof WebClientResponseException) {
return ((WebClientResponseException) e).getStatusCode().value();
return ((WebClientResponseException) e).getRawStatusCode();
}
else if (e instanceof CircuitBreakerStatusCodeException) {
return ((CircuitBreakerStatusCodeException) e).getStatusCode().value();
return ((CircuitBreakerStatusCodeException) e).getRawStatusCode();
}
return -1;
}

@ -69,9 +69,13 @@ public class PolarisCircuitBreakerHttpResponse implements ClientHttpResponse {
return HttpStatus.valueOf(fallbackInfo.getCode());
}
@Override
public final int getRawStatusCode() {
return fallbackInfo.getCode();
}
@Override
public final String getStatusText() {
HttpStatus status = HttpStatus.resolve(getStatusCode().value());
HttpStatus status = HttpStatus.resolve(getRawStatusCode());
return (status != null ? status.getReasonPhrase() : "");
}

@ -39,7 +39,7 @@ public class PolarisCircuitBreakerHttpResponseTest {
void testConstructorWithCodeOnly() throws IOException {
PolarisCircuitBreakerHttpResponse response = new PolarisCircuitBreakerHttpResponse(200);
Assertions.assertEquals(200, response.getStatusCode().value());
Assertions.assertEquals(200, response.getRawStatusCode());
Assertions.assertNotNull(response.getHeaders());
Assertions.assertTrue(response.getHeaders().isEmpty());
Assertions.assertNull(response.getBody());
@ -50,7 +50,7 @@ public class PolarisCircuitBreakerHttpResponseTest {
String body = "test body";
PolarisCircuitBreakerHttpResponse response = new PolarisCircuitBreakerHttpResponse(200, body);
Assertions.assertEquals(200, response.getStatusCode().value());
Assertions.assertEquals(200, response.getRawStatusCode());
Assertions.assertNotNull(response.getHeaders());
Assertions.assertTrue(response.getHeaders().isEmpty());
Assertions.assertNotNull(response.getBody());
@ -65,7 +65,7 @@ public class PolarisCircuitBreakerHttpResponseTest {
PolarisCircuitBreakerHttpResponse response = new PolarisCircuitBreakerHttpResponse(200, headers, body);
Assertions.assertEquals(200, response.getStatusCode().value());
Assertions.assertEquals(200, response.getRawStatusCode());
Assertions.assertNotNull(response.getHeaders());
Assertions.assertEquals(2, response.getHeaders().size());
Assertions.assertTrue(response.getHeaders().containsKey("Content-Type"));
@ -81,7 +81,7 @@ public class PolarisCircuitBreakerHttpResponseTest {
PolarisCircuitBreakerHttpResponse response = new PolarisCircuitBreakerHttpResponse(fallbackInfo);
Assertions.assertEquals(200, response.getStatusCode().value());
Assertions.assertEquals(200, response.getRawStatusCode());
Assertions.assertEquals(fallbackInfo, response.getFallbackInfo());
Assertions.assertNotNull(response.getHeaders());
Assertions.assertTrue(response.getHeaders().containsKey("Content-Type"));
@ -97,8 +97,10 @@ public class PolarisCircuitBreakerHttpResponseTest {
@Test
void testGetStatusTextWithInvalidHttpStatus() {
PolarisCircuitBreakerHttpResponse response = new PolarisCircuitBreakerHttpResponse(999);
String statusText = response.getStatusText();
Assertions.assertEquals("", statusText);
//SCT 2024 will throw IllegalArgumentException when getStatusText() is called with invalid http status code
Assertions.assertThrows(IllegalArgumentException.class, () -> response.getStatusText());
// Assertions.assertThrows(IllegalArgumentException.class, () -> response.getStatusText());
}
@Test

@ -183,7 +183,7 @@ public class QuotaCheckReactiveFilterTest {
quotaCheckReactiveFilter.filter(testApp3Exchange, webFilterChain);
ServerHttpResponse response = testApp3Exchange.getResponse();
assertThat(response.getStatusCode()).isNotNull();
assertThat(response.getStatusCode().value()).isEqualTo(419);
assertThat(response.getRawStatusCode()).isEqualTo(419);
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.INSUFFICIENT_SPACE_ON_RESOURCE);
assertThat(response.getHeaders()
.get(HeaderConstant.INTERNAL_ACTIVE_RULE_NAME)).isEqualTo(Collections.singletonList("MOCK_RULE"));
@ -229,7 +229,7 @@ public class QuotaCheckReactiveFilterTest {
quotaCheckWithRateLimiterLimitedFallbackReactiveFilter.filter(exchange, webFilterChain);
ServerHttpResponse response = exchange.getResponse();
assertThat(response.getStatusCode()).isNotNull();
assertThat(response.getStatusCode().value()).isEqualTo(polarisRateLimiterLimitedFallback.rejectHttpCode());
assertThat(response.getRawStatusCode()).isEqualTo(polarisRateLimiterLimitedFallback.rejectHttpCode());
assertThat(response.getHeaders().getContentType()).isEqualTo(polarisRateLimiterLimitedFallback.mediaType());
// Exception

@ -92,7 +92,7 @@ public class EnhancedRestTemplateWrapInterceptor {
enhancedPluginContext.setDelay(System.currentTimeMillis() - startMillis);
EnhancedResponseContext enhancedResponseContext = EnhancedResponseContext.builder()
.httpStatus(response.getStatusCode().value())
.httpStatus(response.getRawStatusCode())
.httpHeaders(response.getHeaders())
.build();
enhancedPluginContext.setResponse(enhancedResponseContext);

Loading…
Cancel
Save