Fix the processing of an empty HTML response body from REST-API
Change-Id: I23ce1b256b732ed10d6007e69bdc2179a8702dad
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClient.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClient.java
index 4db4ceb..2dd991c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClient.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClient.java
@@ -198,13 +198,20 @@
@Override
public HttpResult handleResponse(HttpResponse response) {
- Optional<String> responseBody = Optional.empty();
- try {
- responseBody = Optional.ofNullable(EntityUtils.toString(response.getEntity()));
- } catch (ParseException | IOException e) {
- logger.atSevere().withCause(e).log("Unable get response body from %s", response.toString());
- }
+ Optional<String> responseBody =
+ Optional.ofNullable(response.getEntity())
+ .flatMap(
+ body -> {
+ try {
+ return Optional.of(EntityUtils.toString(body));
+ } catch (ParseException | IOException e) {
+ logger.atSevere().withCause(e).log(
+ "Unable get response body from %s", response.toString());
+ return Optional.empty();
+ }
+ });
+
return new HttpResult(response.getStatusLine().getStatusCode(), responseBody);
}