in flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadeImpl.java [269:286]
private <T> T execute(Command<T> cmd) throws FlinkRuntimeException {
Preconditions.checkState(isOpen(), "not connected");
LOG.debug("{}, xid={}", cmd.name, cmd.xid);
try {
T result = cmd.callable.call();
LOG.trace("{} succeeded , xid={}", cmd.name, cmd.xid);
return result;
} catch (XAException e) {
if (HEUR_ERR_CODES.contains(e.errorCode)) {
cmd.xid.ifPresent(this::forget);
}
return cmd.recover.apply(e).orElseThrow(() -> wrapException(cmd.name, cmd.xid, e));
} catch (FlinkRuntimeException e) {
throw e;
} catch (Exception e) {
throw wrapException(cmd.name, cmd.xid, e);
}
}