From a79d8dbd95849a035c654f798d661ff006e9032a Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Thu, 21 Apr 2016 17:31:29 +0200 Subject: Truncate files if they are resumed and bigger than expected --- src/main/java/org/openslx/filetransfer/Transfer.java | 1 + .../java/org/openslx/filetransfer/util/IncomingTransferBase.java | 7 +++++++ 2 files changed, 8 insertions(+) (limited to 'src') 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 ); } -- cgit v1.2.3-55-g7522