summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodulserver/src/main/java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java13
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())) {