Skip to content

Commit 95e9222

Browse files
committed
Update TransactionRetryHandler
1 parent 960b312 commit 95e9222

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

misk-jdbc/api/misk-jdbc.api

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,7 @@ public final class misk/jdbc/RealTransacter : misk/jdbc/Transacter {
580580

581581
public final class misk/jdbc/RetryTransactionException : java/lang/RuntimeException {
582582
public fun <init> ()V
583+
public fun <init> (Ljava/lang/String;)V
583584
public fun <init> (Ljava/lang/String;Ljava/lang/Throwable;)V
584585
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
585586
}
@@ -703,11 +704,17 @@ public abstract interface class misk/jdbc/Transacter {
703704
public final class misk/jdbc/TransactionRetryHandler {
704705
public static final field Companion Lmisk/jdbc/TransactionRetryHandler$Companion;
705706
public fun <init> ()V
707+
public fun <init> (Ljava/lang/String;)V
706708
public fun <init> (Ljava/lang/String;Lmisk/jdbc/DataSourceType;)V
707709
public synthetic fun <init> (Ljava/lang/String;Lmisk/jdbc/DataSourceType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
710+
public fun <init> (Ljava/lang/String;Lmisk/jdbc/ExceptionClassifier;)V
708711
public fun <init> (Ljava/lang/String;Lmisk/jdbc/ExceptionClassifier;Lmisk/jdbc/DataSourceType;)V
709712
public synthetic fun <init> (Ljava/lang/String;Lmisk/jdbc/ExceptionClassifier;Lmisk/jdbc/DataSourceType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
710713
public final fun executeWithRetries (IJJJLkotlin/jvm/functions/Function0;)Ljava/lang/Object;
714+
public final fun executeWithRetries (IJJLkotlin/jvm/functions/Function0;)Ljava/lang/Object;
715+
public final fun executeWithRetries (IJLkotlin/jvm/functions/Function0;)Ljava/lang/Object;
716+
public final fun executeWithRetries (ILkotlin/jvm/functions/Function0;)Ljava/lang/Object;
717+
public final fun executeWithRetries (Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
711718
public static synthetic fun executeWithRetries$default (Lmisk/jdbc/TransactionRetryHandler;IJJJLkotlin/jvm/functions/Function0;ILjava/lang/Object;)Ljava/lang/Object;
712719
}
713720

misk-jdbc/src/main/kotlin/misk/jdbc/TransactionRetryHandler.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import java.time.Duration
1313
* This class provides a unified way to handle retryable database exceptions across
1414
* different persistence technologies (Hibernate, JOOQ, etc.).
1515
*/
16-
class TransactionRetryHandler(
16+
class TransactionRetryHandler @JvmOverloads constructor(
1717
private val qualifierName: String = "database",
1818
private val exceptionClassifier: ExceptionClassifier = DefaultExceptionClassifier(),
1919
databaseType: DataSourceType? = null
@@ -27,7 +27,8 @@ class TransactionRetryHandler(
2727
/**
2828
* Executes a block with retry logic for transient database failures.
2929
*/
30-
fun <T> executeWithRetries(
30+
@JvmOverloads
31+
fun <T> executeWithRetries(
3132
maxAttempts: Int = 3,
3233
minRetryDelayMillis: Long = 100,
3334
maxRetryDelayMillis: Long = 500,
@@ -91,7 +92,7 @@ interface ExceptionClassifier {
9192
/**
9293
* Default exception classifier that handles common database retry scenarios.
9394
*/
94-
open class DefaultExceptionClassifier(
95+
open class DefaultExceptionClassifier @JvmOverloads constructor(
9596
private val databaseType: DataSourceType? = null
9697
) : ExceptionClassifier {
9798

@@ -182,5 +183,5 @@ open class DefaultExceptionClassifier(
182183
* Exception that can be thrown by application code to force a transaction retry.
183184
* This is commonly used in Hibernate-based applications.
184185
*/
185-
class RetryTransactionException(message: String? = null, cause: Throwable? = null) :
186+
class RetryTransactionException @JvmOverloads constructor(message: String? = null, cause: Throwable? = null) :
186187
RuntimeException(message, cause)

0 commit comments

Comments
 (0)