summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java45
1 files changed, 25 insertions, 20 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java
index b9209686..e3b0baf7 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java
@@ -484,27 +484,32 @@ public class DbImage {
return;
List<String> affectedList;
try (MysqlConnection connection = Database.getConnection()) {
- // Disable version in question
- MysqlStatement checkStmt = connection.prepareStatement("SELECT imageversionid FROM"
- + " imageversion WHERE imageversionid = :versionid AND"
- + " (expiretime > UNIX_TIMESTAMP() OR isvalid <> 0)");
- MysqlStatement disableStmt = connection.prepareStatement("UPDATE imageversion SET"
- + " expiretime = 1234567890, isvalid = 0" + " WHERE imageversionid = :versionid");
- affectedList = new ArrayList<>(imageVersionIds.length);
- for (String imageVersionId : imageVersionIds) {
- if (imageVersionId == null)
- continue;
- // Query state explicitly instead of relying on affected rows, as it's
- // broken depending on java version, mysql version and other things
- checkStmt.setString("versionid", imageVersionId);
- ResultSet cr = checkStmt.executeQuery();
- if (!cr.next())
- continue;
- // Was not disabled already, do so
- disableStmt.setString("versionid", imageVersionId);
- affectedList.add(imageVersionId);
+ {
+ // Disable version in question
+ MysqlStatement checkStmt = connection.prepareStatement("SELECT imageversionid FROM"
+ + " imageversion WHERE imageversionid = :versionid AND"
+ + " (expiretime > UNIX_TIMESTAMP() OR isvalid <> 0)");
+ MysqlStatement disableStmt = connection.prepareStatement("UPDATE imageversion SET"
+ + " expiretime = 1234567890, isvalid = 0" + " WHERE imageversionid = :versionid");
+ affectedList = new ArrayList<>(imageVersionIds.length);
+ for (String imageVersionId : imageVersionIds) {
+ if (imageVersionId == null)
+ continue;
+ // Query state explicitly instead of relying on affected rows, as it's
+ // broken depending on java version, mysql version and other things
+ checkStmt.setString("versionid", imageVersionId);
+ ResultSet cr = checkStmt.executeQuery();
+ if (!cr.next())
+ continue;
+ // Was not disabled already, do so
+ disableStmt.setString("versionid", imageVersionId);
+ disableStmt.executeUpdate();
+ affectedList.add(imageVersionId);
+ }
+ // Commit what we did so far
+ checkStmt.close();
+ disableStmt.close();
}
- // Commit what we did so far
connection.commit();
if (!affectedList.isEmpty()) {
updateLatestVersion(connection, affectedList.toArray(new String[affectedList.size()]));