aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-06-17 01:48:10 +0200
committerTharre <tharre3@gmail.com>2018-06-17 01:48:10 +0200
commit748398dba8c1cdd47e38407a5f11929352c9e70e (patch)
treeed92f906a5b1a856678878f7a4ad63150081316d
parentee6579a874e3301e6a538bd0b101cdc127f44263 (diff)
downloadsepm-groupproject-748398dba8c1cdd47e38407a5f11929352c9e70e.tar.gz
sepm-groupproject-748398dba8c1cdd47e38407a5f11929352c9e70e.tar.xz
sepm-groupproject-748398dba8c1cdd47e38407a5f11929352c9e70e.zip
Rollback in cases where we throw ourselves #27305
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java9
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java4
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDAO.java9
3 files changed, 17 insertions, 5 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 a58c8c7..1d8286b 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
@@ -62,7 +62,10 @@ public class EmployeeDatabaseDAO implements EmployeeDAO {
pstmt.executeUpdate();
try (ResultSet rs = pstmt.getGeneratedKeys()) {
- if (!rs.next()) throw new PersistenceException("Failed to insert Employee");
+ if (!rs.next()) {
+ con.rollback();
+ throw new PersistenceException("Failed to insert Employee");
+ }
con.commit();
return rs.getLong(1);
@@ -88,8 +91,10 @@ public class EmployeeDatabaseDAO implements EmployeeDAO {
pstmt.setLong(1, versionId);
pstmt.setLong(2, employee.id());
- if (pstmt.executeUpdate() != 1)
+ if (pstmt.executeUpdate() != 1) {
+ con.rollback();
throw new ElementNotFoundException("No such employeeId exists");
+ }
}
con.commit();
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java
index ed458d6..6770942 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java
@@ -66,8 +66,10 @@ public class RegistrationDatabaseDAO implements RegistrationDAO {
try (PreparedStatement pstmt = con.prepareStatement(sql2)) {
pstmt.setLong(1, vehicleId);
- if (pstmt.executeUpdate() != 1)
+ if (pstmt.executeUpdate() != 1) {
+ con.rollback();
throw new PersistenceException("Failed to persist registration");
+ }
}
con.commit();
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDAO.java
index 3144288..fcae6d3 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDAO.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDAO.java
@@ -64,7 +64,10 @@ public class VehicleDatabaseDAO implements VehicleDAO {
pstmt.executeUpdate();
try (ResultSet rs = pstmt.getGeneratedKeys()) {
- if (!rs.next()) throw new PersistenceException("Failed to insert into Vehicle");
+ if (!rs.next()) {
+ con.rollback();
+ throw new PersistenceException("Failed to insert into Vehicle");
+ }
id = rs.getLong(1);
}
@@ -76,8 +79,10 @@ public class VehicleDatabaseDAO implements VehicleDAO {
pstmt.setString(1, name);
pstmt.setLong(2, version);
- if (pstmt.executeUpdate() != 1)
+ if (pstmt.executeUpdate() != 1) {
+ con.rollback();
throw new PersistenceException("Failed to update VehicleVersion");
+ }
}
con.commit();