Mercurial > dive4elements > framework
diff artifact-database/src/main/java/org/dive4elements/artifactdatabase/db/SQLExecutor.java @ 541:3b1e48d22ce0
Experimentally let database cleaner and backend share the same sql executor.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 03 Sep 2015 15:34:07 +0200 |
parents | 91b1435fb9ea |
children | 0e3ecf7cd461 |
line wrap: on
line diff
--- a/artifact-database/src/main/java/org/dive4elements/artifactdatabase/db/SQLExecutor.java Thu Sep 03 11:46:24 2015 +0200 +++ b/artifact-database/src/main/java/org/dive4elements/artifactdatabase/db/SQLExecutor.java Thu Sep 03 15:34:07 2015 +0200 @@ -55,6 +55,33 @@ } } + public boolean runWriteNoRollback() { + rwLock.writeLock().lock(); + try { + DataSource dataSource = dbConnection.getDataSource(); + try { + conn = dataSource.getConnection(); + try { + conn.setAutoCommit(false); + return doIt(); + } + catch (SQLException sqle) { + throw sqle; + } + } + catch (SQLException sqle) { + logger.error(sqle.getLocalizedMessage(), sqle); + } + finally { + close(); + } + return false; + } + finally { + rwLock.writeLock().unlock(); + } + } + public boolean runWrite() { rwLock.writeLock().lock(); try {