Skip to content

Commit 015ae0c

Browse files
authored
check grpc WorkflowExecutionAlreadyCompletedError status (#708)
1 parent 5ff4197 commit 015ae0c

File tree

1 file changed

+28
-24
lines changed

1 file changed

+28
-24
lines changed

src/main/java/com/uber/cadence/internal/compatibility/thrift/ErrorMapper.java

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -41,43 +41,47 @@ public static TException Error(StatusRuntimeException ex) {
4141
return new AccessDeniedError(ex.getMessage());
4242
case INTERNAL:
4343
return new InternalServiceError(ex.getMessage());
44-
case NOT_FOUND: {
45-
switch (details) {
46-
case "EntityNotExistsError":
44+
case NOT_FOUND:
45+
{
46+
if ("EntityNotExistsError".equals(details)
47+
&& ex.getMessage().contains("already completed.")) {
48+
return new WorkflowExecutionAlreadyCompletedError(ex.getMessage());
49+
} else {
4750
// TODO add cluster info
4851
return new EntityNotExistsError(ex.getMessage());
49-
case "WorkflowExecutionAlreadyCompletedError":
50-
return new WorkflowExecutionAlreadyCompletedError(ex.getMessage());
52+
}
5153
}
52-
}
53-
case ALREADY_EXISTS: {
54-
switch (details) {
55-
case "CancellationAlreadyRequestedError":
56-
return new CancellationAlreadyRequestedError(ex.getMessage());
57-
case "DomainAlreadyExistsError":
58-
return new DomainAlreadyExistsError(ex.getMessage());
59-
case "WorkflowExecutionAlreadyStartedError": {
60-
// TODO add started wf info
61-
WorkflowExecutionAlreadyStartedError e = new WorkflowExecutionAlreadyStartedError();
62-
e.setMessage(ex.getMessage());
63-
return e;
54+
case ALREADY_EXISTS:
55+
{
56+
switch (details) {
57+
case "CancellationAlreadyRequestedError":
58+
return new CancellationAlreadyRequestedError(ex.getMessage());
59+
case "DomainAlreadyExistsError":
60+
return new DomainAlreadyExistsError(ex.getMessage());
61+
case "WorkflowExecutionAlreadyStartedError":
62+
{
63+
// TODO add started wf info
64+
WorkflowExecutionAlreadyStartedError e = new WorkflowExecutionAlreadyStartedError();
65+
e.setMessage(ex.getMessage());
66+
return e;
67+
}
6468
}
6569
}
66-
}
6770
case DATA_LOSS:
6871
return new InternalDataInconsistencyError(ex.getMessage());
6972
case FAILED_PRECONDITION:
7073
switch (details) {
71-
// TODO add infos
74+
// TODO add infos
7275
case "ClientVersionNotSupportedError":
7376
return new ClientVersionNotSupportedError();
7477
case "FeatureNotEnabledError":
7578
return new FeatureNotEnabledError();
76-
case "DomainNotActiveError": {
77-
DomainNotActiveError e = new DomainNotActiveError();
78-
e.setMessage(ex.getMessage());
79-
return e;
80-
}
79+
case "DomainNotActiveError":
80+
{
81+
DomainNotActiveError e = new DomainNotActiveError();
82+
e.setMessage(ex.getMessage());
83+
return e;
84+
}
8185
}
8286
case RESOURCE_EXHAUSTED:
8387
switch (details) {

0 commit comments

Comments
 (0)