private void rollbackTx(SQLConnection conn, Handler<ResultSet> done) { conn.rollback(res -> { if (res.failed()) { throw new RuntimeException(res.cause()); } done.handle(null); }); } }
/** * Rolls back all changes made since the previous commit/rollback. * @param handler the handler called when this operation completes. * @return */ public io.vertx.rxjava.ext.sql.SQLConnection rollback(Handler<AsyncResult<Void>> handler) { delegate.rollback(handler); return this; }
/** * Rolls back all changes made since the previous commit/rollback. * @param handler the handler called when this operation completes. * @return */ public io.vertx.rxjava.ext.sql.SQLConnection rollback(Handler<AsyncResult<Void>> handler) { delegate.rollback(handler); return this; }
@Override public CompletableFuture<Void> rollback() { LOGGER.debug("Connection [{}] - rollback", connectionNumber); CompletableFuture<Void> result = new CompletableFuture<>(); connection.rollback(handler -> { if (handler.succeeded()) { result.complete(null); } else { result.completeExceptionally(handler.cause()); } }); return result; }
@Override public SQLConnection rollback(Handler<AsyncResult<Void>> handler) { delegate.rollback(handler); return this; }
@Override public void rollback(IAsyncResultHandler<Void> handler) { connection.rollback(translateVoidHandlers(handler)); }
@Test public void testEmptyTransactions(TestContext context) { Async async = context.async(); client.getConnection(ar -> { if (ar.failed()) { context.fail(ar.cause()); return; } conn = ar.result(); conn.setAutoCommit(false, ar2 -> { ensureSuccess(context, ar2); conn.rollback(ar3 -> { ensureSuccess(context, ar3); conn.commit(ar4 -> { ensureSuccess(context, ar4); conn.setAutoCommit(true, ar5 -> { ensureSuccess(context, ar5); async.complete(); }); }); }); }); }); }
@Test public void testEmptyTransactions(TestContext context) { Async async = context.async(); client.getConnection(ar -> { if (ar.failed()) { context.fail(ar.cause()); return; } conn = ar.result(); conn.setAutoCommit(false, ar2 -> { ensureSuccess(context, ar2); conn.rollback(ar3 -> { ensureSuccess(context, ar3); conn.commit(ar4 -> { ensureSuccess(context, ar4); conn.setAutoCommit(true, ar5 -> { ensureSuccess(context, ar5); async.complete(); }); }); }); }); }); }
})); } else { conn.rollback(onSuccess(v -> { client.getConnection(onSuccess(newconn -> {
ensureSuccess(context, ar4); UpdateResult updateRes = ar4.result(); conn.rollback(ar5 -> { ensureSuccess(context, ar5); conn.query("SELECT name FROM test_table ORDER BY id", ar6 -> {
ensureSuccess(context, ar4); UpdateResult updateRes = ar4.result(); conn.rollback(ar5 -> { ensureSuccess(context, ar5); conn.query("SELECT name FROM test_table ORDER BY id", ar6 -> {
ensureSuccess(context, ar4); UpdateResult updateRes = ar4.result(); conn.rollback(ar5 -> { ensureSuccess(context, ar5); conn.query("SELECT name FROM test_table ORDER BY id", ar6 -> {
@Test public void testRollingBackWhenNotInTransaction(TestContext context) { int id = 0; String name = "adele"; Async async = context.async(); client.getConnection(ar -> { ensureSuccess(context, ar); conn = ar.result(); setupSimpleTable(conn, ar2 -> { ensureSuccess(context, ar2); conn.setAutoCommit(false, ar3 -> { ensureSuccess(context, ar3); conn.updateWithParams("UPDATE test_table SET name=? WHERE id=?", new JsonArray().add(name).add(id), ar4 -> { ensureSuccess(context, ar4); conn.setAutoCommit(true, ar5 -> { ensureSuccess(context, ar5); conn.rollback(ar6 -> { context.assertTrue(ar6.failed()); async.complete(); }); }); }); }); }); }); }
@Test public void testRollingBackWhenNotInTransaction(TestContext context) { int id = 0; String name = "adele"; Async async = context.async(); client.getConnection(ar -> { ensureSuccess(context, ar); conn = ar.result(); setupSimpleTable(conn, ar2 -> { ensureSuccess(context, ar2); conn.setAutoCommit(false, ar3 -> { ensureSuccess(context, ar3); conn.updateWithParams("UPDATE test_table SET name=? WHERE id=?", new JsonArray().add(name).add(id), ar4 -> { ensureSuccess(context, ar4); conn.setAutoCommit(true, ar5 -> { ensureSuccess(context, ar5); conn.rollback(ar6 -> { context.assertTrue(ar6.failed()); async.complete(); }); }); }); }); }); }); }
@Test public void testRollingBackWhenNotInTransaction(TestContext context) { int id = 0; String name = "adele"; Async async = context.async(); client.getConnection(ar -> { ensureSuccess(context, ar); conn = ar.result(); setupSimpleTable(conn, ar2 -> { ensureSuccess(context, ar2); conn.setAutoCommit(false, ar3 -> { ensureSuccess(context, ar3); conn.updateWithParams("UPDATE test_table SET name=? WHERE id=?", new JsonArray().add(name).add(id), ar4 -> { ensureSuccess(context, ar4); conn.setAutoCommit(true, ar5 -> { ensureSuccess(context, ar5); conn.rollback(ar6 -> { context.assertTrue(ar6.failed()); async.complete(); }); }); }); }); }); }); }
ensureSuccess(context, ar32); context.assertEquals(ar32.result().getUpdated(), 1); connections[0].rollback(ar33 -> { ensureSuccess(context, ar33); connections[0].close(v -> {
ensureSuccess(context, ar32); context.assertEquals(ar32.result().getUpdated(), 1); connections[0].rollback(ar33 -> { ensureSuccess(context, ar33); connections[0].close(v -> {
ensureSuccess(context, ar32); context.assertEquals(ar32.result().getUpdated(), 1); connections[0].rollback(ar33 -> { ensureSuccess(context, ar33); connections[0].close(v -> {