Skip to content

Commit c5cf7bb

Browse files
authored
fix(schedule): try catch clause and rethrow StatusRuntimeException that does not match status c… (#1818)
fix: try catch clause and rethrow errors that does not match status code ALREADY_EXISTS
1 parent 6054c31 commit c5cf7bb

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright (C) 2022 Temporal Technologies, Inc. All Rights Reserved.
3+
*
4+
* Copyright (C) 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
5+
*
6+
* Modifications copyright (C) 2017 Uber Technologies, Inc.
7+
*
8+
* Licensed under the Apache License, Version 2.0 (the "License");
9+
* you may not use this material except in compliance with the License.
10+
* You may obtain a copy of the License at
11+
*
12+
* http://www.apache.org/licenses/LICENSE-2.0
13+
*
14+
* Unless required by applicable law or agreed to in writing, software
15+
* distributed under the License is distributed on an "AS IS" BASIS,
16+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17+
* See the License for the specific language governing permissions and
18+
* limitations under the License.
19+
*/
20+
21+
package io.temporal.client.schedules;
22+
23+
import io.temporal.failure.TemporalException;
24+
25+
/** Exception thrown by client when attempting to create a schedule. */
26+
public final class ScheduleException extends TemporalException {
27+
public ScheduleException(Throwable cause) {
28+
super("Schedule exception", cause);
29+
}
30+
}

temporal-sdk/src/main/java/io/temporal/internal/client/RootScheduleClientInvoker.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,11 @@ public void createSchedule(CreateScheduleInput input) {
101101

102102
try {
103103
genericClient.createSchedule(request.build());
104-
} catch (Exception e) {
105-
if (e instanceof StatusRuntimeException) {
106-
StatusRuntimeException sre = (StatusRuntimeException) e;
107-
if (Status.Code.ALREADY_EXISTS.equals(sre.getStatus().getCode())) {
108-
throw new ScheduleAlreadyRunningException(sre);
109-
}
104+
} catch (StatusRuntimeException e) {
105+
if (Status.Code.ALREADY_EXISTS.equals(e.getStatus().getCode())) {
106+
throw new ScheduleAlreadyRunningException(e);
107+
} else {
108+
throw new ScheduleException(e);
110109
}
111110
}
112111
}

0 commit comments

Comments
 (0)