diff --git a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java index 24355a3..b51277d 100644 --- a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java +++ b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java @@ -1,6 +1,7 @@ package org.hypertrace.core.serviceframework.grpc; import static io.grpc.Deadline.after; +import static java.util.Objects.nonNull; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.SECONDS; @@ -46,7 +47,7 @@ @Slf4j abstract class GrpcPlatformServiceContainer extends PlatformService { - private List servers; + private List servers = Collections.emptyList(); private final List taskDefinitions = new LinkedList<>(); private final List> scheduledFutures = new LinkedList<>(); private ScheduledExecutorService periodicTaskExecutor; @@ -187,13 +188,15 @@ private void awaitServerTermination(ConstructedServer constructedServer) { @Override protected void doStop() { - this.scheduledFutures.forEach(future -> future.cancel(true)); healthStatusManager.enterTerminalState(); - grpcChannelRegistry.shutdown(after(10, SECONDS)); + this.scheduledFutures.forEach(future -> future.cancel(true)); this.servers.forEach( constructedServer -> ServerManagementUtil.shutdownServer( constructedServer.getServer(), constructedServer.getName(), after(30, SECONDS))); + if (nonNull(grpcChannelRegistry)) { + grpcChannelRegistry.shutdown(after(10, SECONDS)); + } } @Override diff --git a/platform-http-service-framework/src/main/java/org/hypertrace/core/serviceframework/http/StandAloneHttpPlatformServiceContainer.java b/platform-http-service-framework/src/main/java/org/hypertrace/core/serviceframework/http/StandAloneHttpPlatformServiceContainer.java index 989ccf6..8cd13fc 100644 --- a/platform-http-service-framework/src/main/java/org/hypertrace/core/serviceframework/http/StandAloneHttpPlatformServiceContainer.java +++ b/platform-http-service-framework/src/main/java/org/hypertrace/core/serviceframework/http/StandAloneHttpPlatformServiceContainer.java @@ -48,8 +48,8 @@ protected void doStart() { @Override protected void doStop() { log.info("Stopping service {}", this.getServiceName()); - grpcChannelRegistry.shutdown(after(10, SECONDS)); this.container.stop(); + grpcChannelRegistry.shutdown(after(10, SECONDS)); } @Override