Skip to content

Commit

Permalink
fix(schedule): try catch clause and rethrow StatusRuntimeException th…
Browse files Browse the repository at this point in the history
…at does not match status c… (#1818)

fix: try catch clause and rethrow errors that does not match status code ALREADY_EXISTS
  • Loading branch information
bryanmlyr authored Jul 17, 2023
1 parent 6054c31 commit c5cf7bb
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
}
Expand Down

0 comments on commit c5cf7bb

Please sign in to comment.