diff --git a/code/common/service/java/nu/marginalia/service/client/ServiceNotAvailableException.java b/code/common/service/java/nu/marginalia/service/client/ServiceNotAvailableException.java index 82371fa9..2cb3d14a 100644 --- a/code/common/service/java/nu/marginalia/service/client/ServiceNotAvailableException.java +++ b/code/common/service/java/nu/marginalia/service/client/ServiceNotAvailableException.java @@ -4,6 +4,11 @@ import nu.marginalia.service.discovery.property.ServiceKey; public class ServiceNotAvailableException extends RuntimeException { public ServiceNotAvailableException(ServiceKey key) { - super("Service " + key + " not available"); + super(key.toString()); + } + + @Override + public StackTraceElement[] getStackTrace() { // Suppress stack trace + return new StackTraceElement[0]; } } diff --git a/code/functions/live-capture/api/java/nu/marginalia/api/livecapture/LiveCaptureClient.java b/code/functions/live-capture/api/java/nu/marginalia/api/livecapture/LiveCaptureClient.java index e422eb12..e40a97a8 100644 --- a/code/functions/live-capture/api/java/nu/marginalia/api/livecapture/LiveCaptureClient.java +++ b/code/functions/live-capture/api/java/nu/marginalia/api/livecapture/LiveCaptureClient.java @@ -5,6 +5,7 @@ import com.google.inject.Singleton; import nu.marginalia.api.livecapture.LiveCaptureApiGrpc.LiveCaptureApiBlockingStub; import nu.marginalia.service.client.GrpcChannelPoolFactory; import nu.marginalia.service.client.GrpcSingleNodeChannelPool; +import nu.marginalia.service.client.ServiceNotAvailableException; import nu.marginalia.service.discovery.property.ServiceKey; import nu.marginalia.service.discovery.property.ServicePartition; import org.slf4j.Logger; @@ -29,6 +30,9 @@ public class LiveCaptureClient { channelPool.call(LiveCaptureApiBlockingStub::requestScreengrab) .run(RpcDomainId.newBuilder().setDomainId(domainId).build()); } + catch (ServiceNotAvailableException e) { + logger.info("requestScreengrab() failed since the service is not available"); + } catch (Exception e) { logger.error("API Exception", e); }