From c5cf7bb999864702b1f0efa7de811a859c2ca868 Mon Sep 17 00:00:00 2001 From: Bryan Maloyer Date: Tue, 18 Jul 2023 01:28:46 +0200 Subject: [PATCH] =?UTF-8?q?fix(schedule):=20try=20catch=20clause=20and=20r?= =?UTF-8?q?ethrow=20StatusRuntimeException=20that=20does=20not=20match=20s?= =?UTF-8?q?tatus=20c=E2=80=A6=20(#1818)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: try catch clause and rethrow errors that does not match status code ALREADY_EXISTS --- .../client/schedules/ScheduleException.java | 30 +++++++++++++++++++ .../client/RootScheduleClientInvoker.java | 11 ++++--- 2 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 temporal-sdk/src/main/java/io/temporal/client/schedules/ScheduleException.java diff --git a/temporal-sdk/src/main/java/io/temporal/client/schedules/ScheduleException.java b/temporal-sdk/src/main/java/io/temporal/client/schedules/ScheduleException.java new file mode 100644 index 000000000..e0c6b414c --- /dev/null +++ b/temporal-sdk/src/main/java/io/temporal/client/schedules/ScheduleException.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2022 Temporal Technologies, Inc. All Rights Reserved. + * + * Copyright (C) 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Modifications copyright (C) 2017 Uber Technologies, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this material except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.temporal.client.schedules; + +import io.temporal.failure.TemporalException; + +/** Exception thrown by client when attempting to create a schedule. */ +public final class ScheduleException extends TemporalException { + public ScheduleException(Throwable cause) { + super("Schedule exception", cause); + } +} diff --git a/temporal-sdk/src/main/java/io/temporal/internal/client/RootScheduleClientInvoker.java b/temporal-sdk/src/main/java/io/temporal/internal/client/RootScheduleClientInvoker.java index d38bc772a..25a02bbea 100644 --- a/temporal-sdk/src/main/java/io/temporal/internal/client/RootScheduleClientInvoker.java +++ b/temporal-sdk/src/main/java/io/temporal/internal/client/RootScheduleClientInvoker.java @@ -101,12 +101,11 @@ public void createSchedule(CreateScheduleInput input) { try { genericClient.createSchedule(request.build()); - } catch (Exception e) { - if (e instanceof StatusRuntimeException) { - StatusRuntimeException sre = (StatusRuntimeException) e; - if (Status.Code.ALREADY_EXISTS.equals(sre.getStatus().getCode())) { - throw new ScheduleAlreadyRunningException(sre); - } + } catch (StatusRuntimeException e) { + if (Status.Code.ALREADY_EXISTS.equals(e.getStatus().getCode())) { + throw new ScheduleAlreadyRunningException(e); + } else { + throw new ScheduleException(e); } } }