diff options
author | Simon Rettberg | 2015-08-18 15:04:17 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-18 15:04:17 +0200 |
commit | c87ec3599fb22bd4b97d7ffbb7542fdbb22f3ca9 (patch) | |
tree | f7fe4d94708729459ae136fe2d981a0d8f6417d4 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java | |
parent | [client] Handle TTransferRejectedException in ThriftError.showMessage (diff) | |
download | tutor-module-c87ec3599fb22bd4b97d7ffbb7542fdbb22f3ca9.tar.gz tutor-module-c87ec3599fb22bd4b97d7ffbb7542fdbb22f3ca9.tar.xz tutor-module-c87ec3599fb22bd4b97d7ffbb7542fdbb22f3ca9.zip |
[server] Update lectures and images when image versions change or get deleted
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java index 3232374e..cc54ba94 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; +import java.sql.SQLException; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -16,6 +17,7 @@ import java.util.concurrent.TimeUnit; import javax.net.ssl.SSLContext; import org.apache.log4j.Logger; +import org.openslx.bwlp.sat.database.mappers.DbImage; import org.openslx.bwlp.sat.database.models.LocalImageVersion; import org.openslx.bwlp.sat.util.Configuration; import org.openslx.bwlp.sat.util.Constants; @@ -181,9 +183,22 @@ public class FileServer implements IncomingEvent { if (!srcFile.canRead()) { LOGGER.warn("Rejecting download of VID " + localImageData.imageVersionId + ": Missing " + srcFile.getPath()); - // TODO: Mark as invalid in DB + try { + DbImage.markValid(localImageData, false); + } catch (SQLException e) { + } throw new TTransferRejectedException("File missing on server"); } + if (srcFile.length() != localImageData.fileSize) { + LOGGER.warn("Rejecting download of VID " + localImageData.imageVersionId + ": Size mismatch for " + + srcFile.getPath() + " (expected " + localImageData.fileSize + ", is " + + srcFile.length() + ")"); + try { + DbImage.markValid(localImageData, false); + } catch (SQLException e) { + } + throw new TTransferRejectedException("File corrupted on server"); + } String key = UUID.randomUUID().toString(); ActiveDownload transfer = new ActiveDownload(key, srcFile); downloads.put(key, transfer); |