diff options
author | Björn Hagemeister | 2014-07-10 15:12:21 +0200 |
---|---|---|
committer | Björn Hagemeister | 2014-07-10 15:12:21 +0200 |
commit | fd7a05859fc66725d54945f3c33e75d501b3e524 (patch) | |
tree | 694fbd80ea4a4aea7777ed44a76bf0ed4190dc45 /src/main/java/org/openslx/filetransfer/Downloader.java | |
parent | Fixed handling with constant byte[] - length while reading and writing from/t... (diff) | |
download | master-sync-shared-fd7a05859fc66725d54945f3c33e75d501b3e524.tar.gz master-sync-shared-fd7a05859fc66725d54945f3c33e75d501b3e524.tar.xz master-sync-shared-fd7a05859fc66725d54945f3c33e75d501b3e524.zip |
Finished implementing exception handling.
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/Downloader.java')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/Downloader.java | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/main/java/org/openslx/filetransfer/Downloader.java b/src/main/java/org/openslx/filetransfer/Downloader.java index 4c132e6..ffa7751 100644 --- a/src/main/java/org/openslx/filetransfer/Downloader.java +++ b/src/main/java/org/openslx/filetransfer/Downloader.java @@ -108,8 +108,20 @@ public class Downloader byte[] data = sendToken.getBytes( StandardCharsets.UTF_8 ); dataToServer.writeByte( data.length ); dataToServer.write( data ); + } catch ( SocketTimeoutException ste ) { + ste.printStackTrace(); + log.info( "Socket timeout occured ... close connection." ); + this.close(); } catch ( IOException e ) { e.printStackTrace(); + readMetaData(); + if (ERROR != null) { + if (ERROR == "timeout") { + log.info( "Socket timeout occured ... close connection." ); + this.close(); + } + } + log.info( "Sending TOKEN in Downloader failed..." ); return false; } return true; @@ -132,8 +144,20 @@ public class Downloader byte[] data = sendRange.getBytes( StandardCharsets.UTF_8 ); dataToServer.writeByte( data.length ); dataToServer.write( data ); + } catch ( SocketTimeoutException ste ) { + ste.printStackTrace(); + log.info( "Socket timeout occured ... close connection." ); + this.close(); } catch ( IOException e ) { e.printStackTrace(); + readMetaData(); + if (ERROR != null) { + if (ERROR == "timeout") { + log.info( "Socket timeout occured ... close connection." ); + this.close(); + } + } + log.info( "Sending RANGE in Uploader failed..." ); return false; } return true; @@ -256,7 +280,6 @@ public class Downloader if ( splitted[1] != null ) ERROR = splitted[1]; System.err.println( "ERROR: " + ERROR ); - this.close(); return false; } } @@ -290,7 +313,7 @@ public class Downloader while ( hasRead < length ) { int ret = dataFromServer.read( incoming, 0, Math.min( length - hasRead, incoming.length ) ); if ( ret == -1 ) { - System.out.println( "Error occured in Downloader.readBinary()," + log.info( "Error occured in Downloader.readBinary()," + " while reading binary." ); return false; } @@ -301,10 +324,12 @@ public class Downloader } catch ( SocketTimeoutException ste ) { ste.printStackTrace(); sendErrorCode( "timeout" ); - log.info( "Socket timeout occured in Downloader." ); + log.info( "Socket timeout occured ... close connection." ); this.close(); } catch ( Exception e ) { e.printStackTrace(); + log.info( "Reading RANGE " + getStartOfRange() + ":" + getEndOfRange() + + " of file failed..." ); return false; } finally { if (file != null) { |