diff options
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/util')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/util/ChunkList.java | 2 | ||||
-rw-r--r-- | src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/main/java/org/openslx/filetransfer/util/ChunkList.java b/src/main/java/org/openslx/filetransfer/util/ChunkList.java index e00aa0e..372b082 100644 --- a/src/main/java/org/openslx/filetransfer/util/ChunkList.java +++ b/src/main/java/org/openslx/filetransfer/util/ChunkList.java @@ -135,7 +135,7 @@ public class ChunkList int index = 0; for ( Boolean missing : statusList ) { FileChunk chunk = allChunks.get( index ); - if ( fileLength != 0 && fileLength < chunk.range.endOffset ) + if ( fileLength != -1 && fileLength < chunk.range.endOffset ) break; // Stop, file is shorter than end of this chunk if ( missingChunks.remove( chunk ) || pendingChunks.remove( chunk ) ) { completeChunks.add( chunk ); diff --git a/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java b/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java index 9406c27..04ddc17 100644 --- a/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java +++ b/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java @@ -15,6 +15,7 @@ import java.util.concurrent.ExecutorService; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.TransferState; +import org.openslx.bwlp.thrift.iface.TransferStatus; import org.openslx.filetransfer.DataReceivedCallback; import org.openslx.filetransfer.Downloader; import org.openslx.filetransfer.FileRange; @@ -107,7 +108,7 @@ public abstract class IncomingTransferBase extends AbstractTransfer implements H download.cancel(); } } - lastActivityTime.set( 0 ); + potentialFinishTime.set( 0 ); safeClose( tmpFileHandle ); } @@ -154,6 +155,10 @@ public abstract class IncomingTransferBase extends AbstractTransfer implements H return state; } + public synchronized TransferStatus getStatus() { + return new TransferStatus(chunks.getStatusArray(), getState()); + } + public final ChunkList getChunks() { return chunks; |