diff options
Diffstat (limited to 'dozentenmodulserver/src/main/java')
| -rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java index b7daf7d9..7bad59a3 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java @@ -472,6 +472,7 @@ public class IncomingDataTransfer extends AbstractTransfer implements HashCheckC } } } else { + // We have no hash checker or the hash for the current chunk is unknown - flush to disk writeFileData(currentChunk.range.startOffset, currentChunk.range.getLength(), buffer); chunks.markSuccessful(currentChunk); } @@ -511,7 +512,9 @@ public class IncomingDataTransfer extends AbstractTransfer implements HashCheckC + " could not be executed. Assuming valid :-("); // Fall through case VALID: - writeFileData(chunk.range.startOffset, chunk.range.getLength(), data); + if (!chunk.isWrittenToDisk()) { + writeFileData(chunk.range.startOffset, chunk.range.getLength(), data); + } chunks.markSuccessful(chunk); if (chunks.isComplete()) { finishUpload(); @@ -544,10 +547,14 @@ public class IncomingDataTransfer extends AbstractTransfer implements HashCheckC } public void updateBlockHashList(List<byte[]> hashList) { - if (state != TransferState.IDLE && state != TransferState.WORKING) + if (state != TransferState.IDLE && state != TransferState.WORKING) { + LOGGER.debug(this.getId() + ": Rejecting block hash list in state " + state); return; - if (hashChecker == null || hashList == null) + } + if (hashChecker == null || hashList == null) { + LOGGER.debug(this.getId() + ": Rejecting block hash list: No hasher"); return; + } chunks.updateSha1Sums(hashList); FileChunk chunk; while (null != (chunk = chunks.getUnhashedComplete())) { |
