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 | |
| 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.
| -rw-r--r-- | src/main/java/org/openslx/filetransfer/Downloader.java | 16 | ||||
| -rw-r--r-- | src/main/java/org/openslx/filetransfer/Listener.java | 2 | ||||
| -rw-r--r-- | src/main/java/org/openslx/filetransfer/Uploader.java | 12 |
3 files changed, 17 insertions, 13 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." ); diff --git a/src/main/java/org/openslx/filetransfer/Listener.java b/src/main/java/org/openslx/filetransfer/Listener.java index d325212..778804d 100644 --- a/src/main/java/org/openslx/filetransfer/Listener.java +++ b/src/main/java/org/openslx/filetransfer/Listener.java @@ -54,7 +54,7 @@ public class Listener extends Thread byte[] b = new byte[ 1 ]; int length = connectionSocket.getInputStream().read( b ); - System.out.println( "Length (Listener): " + length ); + log.info( "Length (Listener): " + length ); if ( b[0] == U ) { log.info( "recognized U --> starting Downloader" ); diff --git a/src/main/java/org/openslx/filetransfer/Uploader.java b/src/main/java/org/openslx/filetransfer/Uploader.java index db41658..825c75e 100644 --- a/src/main/java/org/openslx/filetransfer/Uploader.java +++ b/src/main/java/org/openslx/filetransfer/Uploader.java @@ -233,7 +233,6 @@ public class Uploader // First get length. dataFromServer.read( incoming, 0, 1 ); int length = incoming[0] & 0xFF; - // System.out.println("length: " + length); if ( length == 0 ) // Stop if 0 was read. break; @@ -246,17 +245,14 @@ public class Uploader while ( hasRead < length ) { int ret = dataFromServer.read( incoming, hasRead, length - hasRead ); if ( ret == -1 ) { - System.out.println( "Error in reading Metadata occured!" ); + log.info( "Error in reading Metadata occured!" ); return false; } hasRead += ret; } String data = new String( incoming, "UTF-8" ); - // System.out.println(data); String[] splitted = data.split( "=" ); - // System.out.println("splitted[0]: " + splitted[0]); - // System.out.println("splitted[1]: " + splitted[1]); if ( splitted[0] != null && splitted[0].equals( "TOKEN" ) ) { if ( splitted[1] != null ) TOKEN = splitted[1]; @@ -303,14 +299,14 @@ public class Uploader } file.seek( getStartOfRange() ); - byte[] data = new byte[ 255 ]; + byte[] data = new byte[ 4000 ]; int hasRead = 0; int length = getDiffOfRange(); - System.out.println( "diff of Range: " + length ); +// System.out.println( "diff of Range: " + length ); while ( hasRead < length ) { int ret = file.read( data, 0, Math.min( length - hasRead, data.length ) ); if ( ret == -1 ) { - System.out.println( "Error occured in Uploader.sendFile()," + log.info( "Error occured in Uploader.sendFile()," + " while reading from File to send." ); return false; } |
