summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver
diff options
context:
space:
mode:
authorSimon Rettberg2017-12-18 14:36:34 +0100
committerSimon Rettberg2017-12-18 14:36:34 +0100
commit4f7af16dfce97d4639a45db9b44cfcac23929b59 (patch)
tree6c31f02b420a204a05ee15f9de6401bcd317afbd /dozentenmodulserver
parent[server] httpd: Better error handling on connection failures (diff)
downloadtutor-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.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()]));