From b023e81778c61d7ee6a6774544704e6b43b24311 Mon Sep 17 00:00:00 2001 From: Tharre Date: Sat, 16 Jun 2018 21:58:50 +0200 Subject: Rollback when on getConnection() #27305 --- .../groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java | 5 ++++- .../groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java | 4 ++-- .../sepm/assignment/groupphase/util/JDBCConnectionManager.java | 8 ++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) (limited to 'src/main') diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java index f384937..a58c8c7 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java @@ -65,11 +65,11 @@ public class EmployeeDatabaseDAO implements EmployeeDAO { if (!rs.next()) throw new PersistenceException("Failed to insert Employee"); con.commit(); - con.setAutoCommit(true); return rs.getLong(1); } } } catch (SQLException e) { + jdbcConnectionManager.rollbackConnection(); throw new PersistenceException(e); } } @@ -91,7 +91,10 @@ public class EmployeeDatabaseDAO implements EmployeeDAO { if (pstmt.executeUpdate() != 1) throw new ElementNotFoundException("No such employeeId exists"); } + + con.commit(); } catch (SQLException e) { + jdbcConnectionManager.rollbackConnection(); throw new PersistenceException(e); } } diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java index b526d36..0b6ce08 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java @@ -70,9 +70,9 @@ public class OperationDatabaseDAO implements OperationDAO { pstmt.executeBatch(); } con.commit(); - con.setAutoCommit(true); return operationId; } catch (SQLException e) { + jdbcConnectionManager.rollbackConnection(); throw new PersistenceException(e); } } @@ -117,8 +117,8 @@ public class OperationDatabaseDAO implements OperationDAO { pstmt.executeBatch(); } con.commit(); - con.setAutoCommit(true); } catch (SQLException e) { + jdbcConnectionManager.rollbackConnection(); throw new PersistenceException(e); } } diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java index 0ee3319..ea394ab 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java @@ -47,4 +47,12 @@ public class JDBCConnectionManager { } connection = null; } + + public void rollbackConnection() { + try { + connection.rollback(); + } catch (SQLException e) { + LOG.error("Failed to rollback connection", e); + } + } } -- cgit v1.2.3-70-g09d2