summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/filetransfer/Downloader.java
diff options
context:
space:
mode:
authorBjörn Hagemeister2014-07-11 14:52:08 +0200
committerBjörn Hagemeister2014-07-11 14:52:08 +0200
commit03e7c5dadef0094b7bbd373f06ab447346a2082b (patch)
tree3b07b6ad7c7ae92b00654ac40e8352194c181b2f /src/main/java/org/openslx/filetransfer/Downloader.java
parent[Thrift] Add method for server to check if he is authenticated (diff)
downloadmaster-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.java16
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." );