From 60c1a5b111faddac6d428eb6b6cca60ad5455d3d Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Fri, 14 Aug 2015 17:02:58 +1200 Subject: [PATCH] #374 - Add DbOffline check into TransactionManager isReadCommittedIsolation() --- .../server/transaction/TransactionManager.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/avaje/ebeaninternal/server/transaction/TransactionManager.java b/src/main/java/com/avaje/ebeaninternal/server/transaction/TransactionManager.java index b5a7c1b5b..5a1131c92 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/transaction/TransactionManager.java +++ b/src/main/java/com/avaje/ebeaninternal/server/transaction/TransactionManager.java @@ -4,6 +4,7 @@ import com.avaje.ebean.BackgroundExecutor; import com.avaje.ebean.config.PersistBatch; import com.avaje.ebean.config.ServerConfig; import com.avaje.ebean.config.dbplatform.DatabasePlatform.OnQueryOnly; +import com.avaje.ebean.dbmigration.DbOffline; import com.avaje.ebean.event.TransactionEventListener; import com.avaje.ebeaninternal.api.SpiTransaction; import com.avaje.ebeaninternal.api.TransactionEvent; @@ -157,7 +158,7 @@ public class TransactionManager { if (OnQueryOnly.CLOSE.equals(dbPlatformOnQueryOnly)) { // check for read committed isolation level - if (!isReadCommitedIsolation(ds)) { + if (!isReadCommittedIsolation(ds)) { logger.warn("Ignoring DatabasePlatform.OnQueryOnly.CLOSE as the transaction Isolation Level is not " + "READ_COMMITTED"); // we will just use ROLLBACK and ignore the desired optimisation @@ -174,8 +175,11 @@ public class TransactionManager { /** * Return true if the isolation level is read committed. */ - private boolean isReadCommitedIsolation(DataSource ds) { + private boolean isReadCommittedIsolation(DataSource ds) { + if (DbOffline.isSet()) { + return true; + } Connection c = null; try { c = ds.getConnection();