diff options
author | Simon Rettberg | 2017-12-18 14:36:34 +0100 |
---|---|---|
committer | Simon Rettberg | 2017-12-18 14:36:34 +0100 |
commit | 4f7af16dfce97d4639a45db9b44cfcac23929b59 (patch) | |
tree | 6c31f02b420a204a05ee15f9de6401bcd317afbd /dozentenmodulserver | |
parent | [server] httpd: Better error handling on connection failures (diff) | |
download | tutor-module-4f7af16dfce97d4639a45db9b44cfcac23929b59.tar.gz tutor-module-4f7af16dfce97d4639a45db9b44cfcac23929b59.tar.xz tutor-module-4f7af16dfce97d4639a45db9b44cfcac23929b59.zip |
[server] DbImage: Fix image not being marked as invalid
.... missing .executeUpdate() call :-(
Diffstat (limited to 'dozentenmodulserver')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java | 45 |
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()])); |