Utils.java
/*
* SPDX-FileCopyrightText: 2026 kaumei.io
* SPDX-License-Identifier: Apache-2.0
*/
package io.kaumei.jdbc.tx.internal;
import io.kaumei.jdbc.tx.KaumeiTxException;
import org.jspecify.annotations.Nullable;
import java.sql.Connection;
final class Utils {
private Utils() {
}
static Throwable addSuppressed(@Nullable Throwable exp, Throwable added) {
if (exp == null) {
if (added instanceof RuntimeException) {
return added;
} else if (added instanceof Error) {
return added;
} else {
return new KaumeiTxException(added.getMessage(), added);
}
}
if (exp != added) {
exp.addSuppressed(added);
}
return exp;
}
static void throwUnchecked(Throwable exp) {
if (exp instanceof RuntimeException e) {
throw e;
} else if (exp instanceof Error e) {
throw e;
} else {
throw new KaumeiTxException(exp.getMessage(), exp);
}
}
static @Nullable Throwable close(Connection con, @Nullable Throwable exp) {
try {
con.close();
return exp;
} catch (Throwable e) {
return addSuppressed(exp, e);
}
}
}