Browse Source

SONAR-15388 - BBS Validation with missing response body

tags/9.1.0.47736
Belen Pruvost 2 years ago
parent
commit
fe8a58c986

+ 1
- 1
server/sonar-alm-client/src/main/java/org/sonar/alm/client/bitbucketserver/BitbucketServerRestClient.java View File

@@ -168,7 +168,7 @@ public class BitbucketServerRestClient {

protected static String getErrorMessage(ResponseBody body) throws IOException {
String bodyString = body.string();
if (equals(MediaType.parse("application/json;charset=utf-8"), body.contentType())) {
if (equals(MediaType.parse("application/json;charset=utf-8"), body.contentType()) && !isNullOrEmpty(bodyString)) {
try {
return Stream.of(buildGson().fromJson(bodyString, Errors.class).errorData)
.map(e -> e.exceptionName + " " + e.message)

+ 11
- 0
server/sonar-alm-client/src/test/java/org/sonar/alm/client/bitbucketserver/BitbucketServerRestClientTest.java View File

@@ -486,6 +486,17 @@ public class BitbucketServerRestClientTest {
.extracting(e -> ((BitbucketServerException) e).getHttpStatus()).isEqualTo(404);
}

@Test
public void fail_validate_url_when_body_is_empty() {
server.enqueue(new MockResponse().setResponseCode(404).setBody(""));

String serverUrl = server.url("/").toString();
assertThatThrownBy(() -> underTest.validateUrl(serverUrl))
.isInstanceOf(BitbucketServerException.class)
.hasMessage("")
.extracting(e -> ((BitbucketServerException) e).getHttpStatus()).isEqualTo(404);
}

@Test
public void fail_validate_url_when_validate_url_return_non_json_payload() {
server.enqueue(new MockResponse().setResponseCode(400)

Loading…
Cancel
Save