aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-06-16 21:58:50 +0200
committerTharre <tharre3@gmail.com>2018-06-16 22:53:18 +0200
commitb023e81778c61d7ee6a6774544704e6b43b24311 (patch)
tree74c90ba5502efb75dff0459a91ca12f24bb9d79c
parentf80a69e941f0949dbec476755abfd373c26846ce (diff)
downloadsepm-groupproject-b023e81778c61d7ee6a6774544704e6b43b24311.tar.gz
sepm-groupproject-b023e81778c61d7ee6a6774544704e6b43b24311.tar.xz
sepm-groupproject-b023e81778c61d7ee6a6774544704e6b43b24311.zip
Rollback when on getConnection() #27305
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java5
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java4
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/util/JDBCConnectionManager.java8
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);
+ }
+ }
}