summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/filetransfer
diff options
context:
space:
mode:
authorSimon Rettberg2015-07-21 17:07:43 +0200
committerSimon Rettberg2015-07-21 17:07:43 +0200
commit25f81d3592d103a6b83516d76d2e767b8c2b15b3 (patch)
treef58e6a85a4911f326c0be8cdf9518936dce14ec0 /src/main/java/org/openslx/filetransfer
parentAdd contains method to FileRange class (diff)
downloadmaster-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.java4
-rw-r--r--src/main/java/org/openslx/filetransfer/Transfer.java20
-rw-r--r--src/main/java/org/openslx/filetransfer/Uploader.java2
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 ) {