diff options
author | Björn Hagemeister | 2014-07-11 14:52:08 +0200 |
---|---|---|
committer | Björn Hagemeister | 2014-07-11 14:52:08 +0200 |
commit | 03e7c5dadef0094b7bbd373f06ab447346a2082b (patch) | |
tree | 3b07b6ad7c7ae92b00654ac40e8352194c181b2f /src/main/java/org/openslx/filetransfer/Downloader.java | |
parent | [Thrift] Add method for server to check if he is authenticated (diff) | |
download | master-sync-shared-03e7c5dadef0094b7bbd373f06ab447346a2082b.tar.gz master-sync-shared-03e7c5dadef0094b7bbd373f06ab447346a2082b.tar.xz master-sync-shared-03e7c5dadef0094b7bbd373f06ab447346a2082b.zip |
Fixed bug in readMetaData which returned true, while not reading anything.
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/Downloader.java')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/Downloader.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/main/java/org/openslx/filetransfer/Downloader.java b/src/main/java/org/openslx/filetransfer/Downloader.java index b34401b..542e58e 100644 --- a/src/main/java/org/openslx/filetransfer/Downloader.java +++ b/src/main/java/org/openslx/filetransfer/Downloader.java @@ -238,9 +238,15 @@ public class Downloader byte[] incoming = new byte[ 255 ]; // TODO: problematische Größe. // First get length. - dataFromServer.read( incoming, 0, 1 ); - int length = incoming[0]; - System.out.println( "length (downloader): " + length ); + int retLengthByte; + retLengthByte = dataFromServer.read( incoming, 0, 1 ); + if (retLengthByte != 1) { + this.close(); + return false; + } + + int length = incoming[0] & 0xFF; + log.info( "length (downloader): " + length ); if ( length == 0 ) break; @@ -253,7 +259,7 @@ public class Downloader while ( hasRead < length ) { int ret = dataFromServer.read( incoming, hasRead, length - hasRead ); if ( ret == -1 ) { - System.out.println( "Error occured while reading Metadata." ); + log.info( "Error occured while reading Metadata." ); return false; } hasRead += ret; @@ -287,6 +293,7 @@ public class Downloader sendErrorCode( "timeout" ); log.info( "Socket Timeout occured in Downloader." ); this.close(); + return false; } catch ( Exception e ) { e.printStackTrace(); this.close(); @@ -311,6 +318,7 @@ public class Downloader file.seek( getStartOfRange() ); while ( hasRead < length ) { int ret = dataFromServer.read( incoming, 0, Math.min( length - hasRead, incoming.length ) ); + // log.info("hasRead: " + hasRead + " length: " + length + " ret: " + ret); if ( ret == -1 ) { log.info( "Error occured in Downloader.readBinary()," + " while reading binary." ); |