diff --git a/jOOQ-test/src/test/java/org/jooq/test/all/testcases/TransactionTests.java b/jOOQ-test/src/test/java/org/jooq/test/all/testcases/TransactionTests.java index 79c34b3b2e..f4365694a0 100644 --- a/jOOQ-test/src/test/java/org/jooq/test/all/testcases/TransactionTests.java +++ b/jOOQ-test/src/test/java/org/jooq/test/all/testcases/TransactionTests.java @@ -49,7 +49,6 @@ import java.sql.Date; import java.sql.SQLException; import java.util.concurrent.atomic.AtomicInteger; -import org.jooq.Configuration; import org.jooq.ConnectionProvider; import org.jooq.DSLContext; import org.jooq.Record1; @@ -57,7 +56,6 @@ import org.jooq.Record2; import org.jooq.Record3; import org.jooq.Record6; import org.jooq.TableRecord; -import org.jooq.Transactional; import org.jooq.UpdatableRecord; import org.jooq.exception.DataAccessException; import org.jooq.impl.DSL; @@ -113,19 +111,16 @@ extends BaseTest() { - @Override - public Integer run(Configuration configuration) { - assertAutoCommit(configuration.connectionProvider(), false); + create.transaction(c -> { + assertAutoCommit(c.connectionProvider(), false); - assertEquals(1, - DSL.using(configuration) - .insertInto(TAuthor(), TAuthor_ID(), TAuthor_LAST_NAME()) - .values(3, "Koontz") - .execute()); + assertEquals(1, + DSL.using(c) + .insertInto(TAuthor(), TAuthor_ID(), TAuthor_LAST_NAME()) + .values(3, "Koontz") + .execute()); - throw new MyRuntimeException("No"); - } + throw new MyRuntimeException("No"); }); fail(); @@ -148,19 +143,16 @@ extends BaseTest() { - @Override - public Integer run(Configuration configuration) throws MyCheckedException { - assertAutoCommit(configuration.connectionProvider(), false); + create.transaction(c -> { + assertAutoCommit(c.connectionProvider(), false); - assertEquals(1, - DSL.using(configuration) - .insertInto(TAuthor(), TAuthor_ID(), TAuthor_LAST_NAME()) - .values(3, "Koontz") - .execute()); + assertEquals(1, + DSL.using(c) + .insertInto(TAuthor(), TAuthor_ID(), TAuthor_LAST_NAME()) + .values(3, "Koontz") + .execute()); - throw new MyCheckedException("No"); - } + throw new MyCheckedException("No"); }); fail(); @@ -189,50 +181,43 @@ extends BaseTest() { - @Override - public Integer run(Configuration c1) throws MyCheckedException { - assertAutoCommit(c1.connectionProvider(), false); + create.transaction(c1 -> { + assertAutoCommit(c1.connectionProvider(), false); - inserted[0] = - DSL.using(c1) - .insertInto(TAuthor(), TAuthor_ID(), TAuthor_LAST_NAME()) - .values(3, "Koontz") - .execute(); + inserted[0] = + DSL.using(c1) + .insertInto(TAuthor(), TAuthor_ID(), TAuthor_LAST_NAME()) + .values(3, "Koontz") + .execute(); - assertEquals(1, inserted[0]); + assertEquals(1, inserted[0]); - // Implicit savepoint here - try { - DSL.using(c1).transaction(new Transactional() { + // Implicit savepoint here + try { + DSL.using(c1).transaction(c2 -> { + assertAutoCommit(c2.connectionProvider(), false); - @Override - public Integer run(Configuration c2) throws Exception { - assertAutoCommit(c2.connectionProvider(), false); + updated[0] = + DSL.using(c2) + .update(TAuthor()) + .set(TAuthor_FIRST_NAME(), "Dean") + .where(TAuthor_ID().eq(3)) + .execute(); - updated[0] = - DSL.using(c2) - .update(TAuthor()) - .set(TAuthor_FIRST_NAME(), "Dean") - .where(TAuthor_ID().eq(3)) - .execute(); + assertEquals(1, updated[0]); - assertEquals(1, updated[0]); - - throw new MyRuntimeException("No"); - } - }); - } - - // Rollback to savepoint must have happened - catch (MyRuntimeException expected) { - assertNull(DSL.using(c1).fetchOne(TAuthor(), TAuthor_ID().eq(3)).getValue(TAuthor_FIRST_NAME())); - assertEquals(MyRuntimeException.class, expected.getClass()); - assertEquals("No", expected.getMessage()); - } - - return 42; + throw new MyRuntimeException("No"); + }); } + + // Rollback to savepoint must have happened + catch (MyRuntimeException expected) { + assertNull(DSL.using(c1).fetchOne(TAuthor(), TAuthor_ID().eq(3)).getValue(TAuthor_FIRST_NAME())); + assertEquals(MyRuntimeException.class, expected.getClass()); + assertEquals("No", expected.getMessage()); + } + + return 42; }); assertEquals(1, provider.acquire.get()); @@ -251,43 +236,36 @@ extends BaseTest() { - @Override - public Integer run(Configuration c1) throws MyCheckedException { - assertAutoCommit(c1.connectionProvider(), false); + create.transaction(c1 -> { + assertAutoCommit(c1.connectionProvider(), false); - inserted[0] = - DSL.using(c1) - .insertInto(TAuthor(), TAuthor_ID(), TAuthor_LAST_NAME()) - .values(3, "Koontz") + inserted[0] = + DSL.using(c1) + .insertInto(TAuthor(), TAuthor_ID(), TAuthor_LAST_NAME()) + .values(3, "Koontz") + .execute(); + + assertEquals(1, inserted[0]); + + // No savepoint here + DSL.using(c1).transaction(c2 -> { + assertAutoCommit(c2.connectionProvider(), false); + + updated[0] = + DSL.using(c2) + .update(TAuthor()) + .set(TAuthor_FIRST_NAME(), "Dean") + .where(TAuthor_ID().eq(3)) .execute(); - assertEquals(1, inserted[0]); + assertEquals(1, updated[0]); - // No savepoint here - DSL.using(c1).transaction(new Transactional() { + throw new MyRuntimeException("No"); + }); - @Override - public Integer run(Configuration c2) throws Exception { - assertAutoCommit(c2.connectionProvider(), false); - - updated[0] = - DSL.using(c2) - .update(TAuthor()) - .set(TAuthor_FIRST_NAME(), "Dean") - .where(TAuthor_ID().eq(3)) - .execute(); - - assertEquals(1, updated[0]); - - throw new MyRuntimeException("No"); - } - }); - - // This code should never be reached, as exception should propagate - fail(); - return 42; - } + // This code should never be reached, as exception should propagate + fail(); + return 42; }); }