summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-06-19 08:45:13 +0200
committerHarald Musum <musum@oath.com>2018-06-19 08:45:13 +0200
commit9a6bf23197ef204c3327927660cbf7f22e81ee73 (patch)
tree1aa2a95f5ea26666ff9845100aeb8a28dc39ccb2
parent149d942cb6f66f7d7d01e15f48fb84a9c6bad6e4 (diff)
Use an immutable set instead of synchronized on parameter
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java19
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java4
2 files changed, 7 insertions, 16 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java
index 131f5f6085b..4eefcc0ca75 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ListTenantsResponse.java
@@ -1,14 +1,12 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.http.v2;
-
+import com.google.common.collect.ImmutableSet;
import com.yahoo.config.provision.TenantName;
import com.yahoo.slime.Cursor;
import com.yahoo.vespa.config.server.http.HttpConfigResponse;
import com.yahoo.vespa.config.server.http.SessionResponse;
-import java.util.Collection;
-
/**
* Tenant list response
*
@@ -16,17 +14,11 @@ import java.util.Collection;
*
*/
public class ListTenantsResponse extends SessionResponse {
- private final Collection<TenantName> tenantNames;
-
- public ListTenantsResponse(final Collection<TenantName> tenants) {
+
+ ListTenantsResponse(ImmutableSet<TenantName> tenants) {
super();
- this.tenantNames = tenants;
Cursor tenantArray = this.root.setArray("tenants");
- synchronized (tenants) {
- for (final TenantName tenantName : tenants) {
- tenantArray.addString(tenantName.value());
- }
- }
+ tenants.forEach(tenantName -> tenantArray.addString(tenantName.value()));
}
@Override
@@ -34,7 +26,4 @@ public class ListTenantsResponse extends SessionResponse {
return HttpConfigResponse.JSON_CONTENT_TYPE;
}
- public Collection<TenantName> getTenantNames() {
- return tenantNames;
- }
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java
index c8e9da1265b..b79fd1c7a62 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/TenantHandler.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.http.v2;
+import com.google.common.collect.ImmutableSet;
import com.google.inject.Inject;
import com.yahoo.config.provision.TenantName;
@@ -26,6 +27,7 @@ public class TenantHandler extends HttpHandler {
private final TenantRepository tenantRepository;
private final ApplicationRepository applicationRepository;
+ @SuppressWarnings("WeakerAccess") // instantiated by dependency injection
@Inject
public TenantHandler(Context ctx, TenantRepository tenantRepository, ApplicationRepository applicationRepository) {
super(ctx);
@@ -51,7 +53,7 @@ public class TenantHandler extends HttpHandler {
Utils.checkThatTenantExists(tenantRepository, tenantName);
return new TenantGetResponse(tenantName);
} else if (isListTenantsRequest(request)) {
- return new ListTenantsResponse(tenantRepository.getAllTenantNames());
+ return new ListTenantsResponse(ImmutableSet.copyOf(tenantRepository.getAllTenantNames()));
} else {
throw new BadRequestException(request.getUri().toString());
}