summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Rettberg2016-04-21 17:31:29 +0200
committerSimon Rettberg2016-04-21 17:31:29 +0200
commita79d8dbd95849a035c654f798d661ff006e9032a (patch)
tree42b51204a32dd24f2e0d2538ef7a0e753bf6e0f5 /src
parentMore imgsync stuff (diff)
downloadmaster-sync-shared-a79d8dbd95849a035c654f798d661ff006e9032a.tar.gz
master-sync-shared-a79d8dbd95849a035c654f798d661ff006e9032a.tar.xz
master-sync-shared-a79d8dbd95849a035c654f798d661ff006e9032a.zip
Truncate files if they are resumed and bigger than expected
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/openslx/filetransfer/Transfer.java1
-rw-r--r--src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/filetransfer/Transfer.java b/src/main/java/org/openslx/filetransfer/Transfer.java
index cf9b475..01c7227 100644
--- a/src/main/java/org/openslx/filetransfer/Transfer.java
+++ b/src/main/java/org/openslx/filetransfer/Transfer.java
@@ -90,6 +90,7 @@ public abstract class Transfer
{
try {
sendKeyValuePair( "ERROR", errString );
+ sendEndOfMeta();
} catch ( IOException e ) {
e.printStackTrace();
this.close( e.toString() );
diff --git a/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java b/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java
index c2d8ee9..518a29f 100644
--- a/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java
+++ b/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java
@@ -88,6 +88,13 @@ public abstract class IncomingTransferBase extends AbstractTransfer implements H
tmpFileName = absFilePath;
tmpFileName.getParentFile().mkdirs();
tmpFileHandle = new RandomAccessFile( absFilePath, "rw" );
+ try {
+ if ( tmpFileHandle.length() > fileSize ) {
+ tmpFileHandle.setLength( fileSize );
+ }
+ } catch ( IOException e ) {
+ LOGGER.debug( "File " + tmpFileName + " is too long and could not be truncated" );
+ }
chunks = new ChunkList( fileSize, blockHashes );
}