diff options
author | Simon Rettberg | 2015-07-21 17:07:43 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-07-21 17:07:43 +0200 |
commit | 25f81d3592d103a6b83516d76d2e767b8c2b15b3 (patch) | |
tree | f58e6a85a4911f326c0be8cdf9518936dce14ec0 /src/main/java/org/openslx/filetransfer | |
parent | Add contains method to FileRange class (diff) | |
download | master-sync-shared-25f81d3592d103a6b83516d76d2e767b8c2b15b3.tar.gz master-sync-shared-25f81d3592d103a6b83516d76d2e767b8c2b15b3.tar.xz master-sync-shared-25f81d3592d103a6b83516d76d2e767b8c2b15b3.zip |
Minor changes to file transfer classes
Diffstat (limited to 'src/main/java/org/openslx/filetransfer')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/Downloader.java | 4 | ||||
-rw-r--r-- | src/main/java/org/openslx/filetransfer/Transfer.java | 20 | ||||
-rw-r--r-- | src/main/java/org/openslx/filetransfer/Uploader.java | 2 |
3 files changed, 15 insertions, 11 deletions
diff --git a/src/main/java/org/openslx/filetransfer/Downloader.java b/src/main/java/org/openslx/filetransfer/Downloader.java index acd70a7..5f026c2 100644 --- a/src/main/java/org/openslx/filetransfer/Downloader.java +++ b/src/main/java/org/openslx/filetransfer/Downloader.java @@ -129,6 +129,10 @@ public class Downloader extends Transfer int ret; try { ret = dataFromServer.read( incoming, 0, Math.min( chunkLength - hasRead, incoming.length ) ); + if ( Thread.currentThread().isInterrupted() ) { + log.debug( "Thread interrupted in download loop" ); + return false; + } } catch ( IOException e ) { log.error( "Could not read payload from socket" ); sendErrorCode( "payload read error" ); diff --git a/src/main/java/org/openslx/filetransfer/Transfer.java b/src/main/java/org/openslx/filetransfer/Transfer.java index 9bf2250..79a0242 100644 --- a/src/main/java/org/openslx/filetransfer/Transfer.java +++ b/src/main/java/org/openslx/filetransfer/Transfer.java @@ -169,13 +169,11 @@ public abstract class Transfer } } } catch ( SocketTimeoutException ste ) { - ste.printStackTrace(); sendErrorCode( "timeout" ); this.close( "Socket Timeout occured in readMetaData." ); return null; } catch ( Exception e ) { - e.printStackTrace(); - this.close( e.toString() ); + this.close( "Exception occured in readMetaData: " + e.toString() ); return null; } return new MetaData( entries ); @@ -219,13 +217,15 @@ public abstract class Transfer public void cancel() { synchronized ( transferSocket ) { - if ( isValid() ) { - try { - transferSocket.shutdownInput(); - transferSocket.shutdownOutput(); - } catch ( Exception e ) { - // Silence - } + try { + transferSocket.shutdownInput(); + } catch ( Exception e ) { + // Silence + } + try { + transferSocket.shutdownOutput(); + } catch ( Exception e ) { + // Silence } } } diff --git a/src/main/java/org/openslx/filetransfer/Uploader.java b/src/main/java/org/openslx/filetransfer/Uploader.java index 92da8ea..6766ba7 100644 --- a/src/main/java/org/openslx/filetransfer/Uploader.java +++ b/src/main/java/org/openslx/filetransfer/Uploader.java @@ -70,7 +70,7 @@ public class Uploader extends Transfer this.close( "Could not open given file for reading.", callback, true ); return false; } - for ( ;; ) { // Loop as long as remote peer is requesting chunks from this file + while ( !Thread.currentThread().isInterrupted() ) { // Loop as long as remote peer is requesting chunks from this file // Read meta data of remote peer - either new range, or it's telling us it's done MetaData meta = readMetaData(); if ( meta == null ) { |