Skip to content

Commit 1a6483a

Browse files
committed
Merge branch '1.1.x'
2 parents c7ad5cb + 7f40473 commit 1a6483a

File tree

1 file changed

+16
-6
lines changed
  • app-builder/waterflow/java/waterflow-service/src/main/java/modelengine/fit/waterflow/flowsengine/domain/flows/definitions/nodes

1 file changed

+16
-6
lines changed

app-builder/waterflow/java/waterflow-service/src/main/java/modelengine/fit/waterflow/flowsengine/domain/flows/definitions/nodes/FlowNode.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
import java.util.ArrayList;
6161
import java.util.Arrays;
6262
import java.util.HashMap;
63+
import java.util.HashSet;
6364
import java.util.List;
6465
import java.util.Map;
6566
import java.util.Objects;
@@ -362,16 +363,12 @@ private FlowErrorInfo getErrorInfo(Exception ex) {
362363
}
363364

364365
private void setJoberErrorInfo(FlowErrorInfo errorInfo, WaterflowException jobberException) {
365-
if (!(jobberException.getCause() instanceof FitException)) {
366+
if (!(jobberException.getCause() instanceof FitException originalException)) {
366367
setErrorInfo(errorInfo, FLOW_SYSTEM_ERROR.getErrorCode(), jobberException.getCause().getMessage(),
367368
new String[0]);
368369
return;
369370
}
370-
FitException originalException = (FitException) jobberException.getCause();
371-
String message = originalException.getMessage();
372-
if (StringUtils.isBlank(message)) {
373-
message = originalException.getCause().getMessage();
374-
}
371+
String message = this.getActualMessage(originalException);
375372
setErrorInfo(errorInfo, originalException.getCode(), message, new String[0]);
376373
errorInfo.setProperties(new HashMap<>());
377374
errorInfo.getProperties().put("fitableId", originalException.getProperties().get("fitableId"));
@@ -539,4 +536,17 @@ public FlowEnv(FlowContextRepo<FlowData> repo, FlowContextMessenger messenger, F
539536
this.locks = locks;
540537
}
541538
}
539+
540+
private String getActualMessage(Throwable throwable) {
541+
Set<Throwable> visited = new HashSet<>();
542+
while (throwable != null && !visited.contains(throwable)) {
543+
visited.add(throwable);
544+
String message = throwable.getMessage();
545+
if (StringUtils.isNotBlank(message)) {
546+
return message;
547+
}
548+
throwable = throwable.getCause();
549+
}
550+
return null;
551+
}
542552
}

0 commit comments

Comments
 (0)