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 {

http://dive4elements.wald.intevation.org