mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#2424 Preserve using PersistenceException when transaction register(Callback) called with no active transaction
This commit is contained in:
@@ -691,7 +691,11 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
|
||||
|
||||
@Override
|
||||
public void register(TransactionCallback transactionCallback) {
|
||||
currentTransaction().register(transactionCallback);
|
||||
Transaction transaction = currentTransaction();
|
||||
if (transaction == null) {
|
||||
throw new PersistenceException("Not currently active transaction when trying to register transactionCallback");
|
||||
}
|
||||
transaction.register(transactionCallback);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -72,12 +72,12 @@ public class TestTransactionCallback extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test_noActiveTransaction() {
|
||||
assertThrows(NullPointerException.class, () -> DB.register(new MyCallback()));
|
||||
assertThrows(PersistenceException.class, () -> DB.register(new MyCallback()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_noActiveTransaction_withDatabase() {
|
||||
assertThrows(NullPointerException.class, () -> DB.getDefault().register(new MyCallback()));
|
||||
assertThrows(PersistenceException.class, () -> DB.getDefault().register(new MyCallback()));
|
||||
}
|
||||
|
||||
class MyCallback extends TransactionCallbackAdapter {
|
||||
|
||||
Reference in New Issue
Block a user