diff options
author | Tharre <tharre3@gmail.com> | 2018-06-16 21:58:50 +0200 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2018-06-16 22:53:18 +0200 |
commit | b023e81778c61d7ee6a6774544704e6b43b24311 (patch) | |
tree | 74c90ba5502efb75dff0459a91ca12f24bb9d79c | |
parent | f80a69e941f0949dbec476755abfd373c26846ce (diff) | |
download | sepm-groupproject-b023e81778c61d7ee6a6774544704e6b43b24311.tar.gz sepm-groupproject-b023e81778c61d7ee6a6774544704e6b43b24311.tar.xz sepm-groupproject-b023e81778c61d7ee6a6774544704e6b43b24311.zip |
Rollback when on getConnection() #27305
3 files changed, 14 insertions, 3 deletions
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); + } + } } |