From d584ece125486c8fe400a00f2f797e924df9b920 Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Thu, 25 Oct 2018 16:11:51 +0200 Subject: Don't parse entity for responses without content --- .../java/com/yahoo/vespa/athenz/client/common/ClientBase.java | 6 +++++- .../com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java | 11 ++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/common/ClientBase.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/common/ClientBase.java index 02952d7c26b..7ff9db327d3 100644 --- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/common/ClientBase.java +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/common/ClientBase.java @@ -60,7 +60,11 @@ public abstract class ClientBase implements AutoCloseable { protected T readEntity(HttpResponse response, Class entityType) throws IOException { if (HttpStatus.isSuccess(response.getStatusLine().getStatusCode())) { - return objectMapper.readValue(response.getEntity().getContent(), entityType); + if (entityType.equals(Void.class)) { + return null; + } else { + return objectMapper.readValue(response.getEntity().getContent(), entityType); + } } else { ErrorResponseEntity errorEntity = objectMapper.readValue(response.getEntity().getContent(), ErrorResponseEntity.class); throw exceptionFactory.createException(errorEntity.code, errorEntity.description); diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java index ed9c1da56c2..b68dc2dd758 100644 --- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java @@ -62,10 +62,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient { .addHeader(creatOktaAccessTokenHeader(token)) .setEntity(toJsonStringEntity(new TenancyRequestEntity(tenantDomain, providerService, Collections.emptyList()))) .build(); - execute(request, response -> { - readEntity(response, String.class); - return response.getStatusLine().getStatusCode(); - }); + execute(request, response -> readEntity(response, Void.class)); } @Override @@ -75,7 +72,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient { .setUri(uri) .addHeader(creatOktaAccessTokenHeader(token)) .build(); - execute(request, response -> readEntity(response, String.class)); + execute(request, response -> readEntity(response, Void.class)); } @Override @@ -86,7 +83,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient { .addHeader(creatOktaAccessTokenHeader(token)) .setEntity(toJsonStringEntity(new ProviderResourceGroupRolesRequestEntity(providerService, tenantDomain, roleActions, resourceGroup))) .build(); - execute(request, response -> readEntity(response, String.class)); // The ZMS API will return a json object that is similar to ProviderResourceGroupRolesRequestEntity + execute(request, response -> readEntity(response, Void.class)); // Note: The ZMS API will actually return a json object that is similar to ProviderResourceGroupRolesRequestEntity } @Override @@ -96,7 +93,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient { .setUri(uri) .addHeader(creatOktaAccessTokenHeader(token)) .build(); - execute(request, response -> readEntity(response, String.class)); + execute(request, response -> readEntity(response, Void.class)); } @Override -- cgit v1.2.3