aboutsummaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2012-03-01 04:24:35 +0000
committerMike Buland <eichlan@xagasoft.com>2012-03-01 04:24:35 +0000
commit7dd5c386611e31930e7ccfb83cb585df27696881 (patch)
tree3e88dea538b32b8c6fbc21036a4f4998bf57ba97 /java
parent93831404b4d4ba4e964ebe542c52bc196585d4ab (diff)
downloadlibgats-7dd5c386611e31930e7ccfb83cb585df27696881.tar.gz
libgats-7dd5c386611e31930e7ccfb83cb585df27696881.tar.bz2
libgats-7dd5c386611e31930e7ccfb83cb585df27696881.tar.xz
libgats-7dd5c386611e31930e7ccfb83cb585df27696881.zip
Fixed a bug in java gats reading large strings over the network.
Diffstat (limited to 'java')
-rw-r--r--java/com/xagasoft/gats/GatsObject.java5
-rw-r--r--java/com/xagasoft/gats/GatsString.java10
2 files changed, 10 insertions, 5 deletions
diff --git a/java/com/xagasoft/gats/GatsObject.java b/java/com/xagasoft/gats/GatsObject.java
index fc3fb5a..47602b3 100644
--- a/java/com/xagasoft/gats/GatsObject.java
+++ b/java/com/xagasoft/gats/GatsObject.java
@@ -43,7 +43,8 @@ public abstract class GatsObject
43 */ 43 */
44 static GatsObject read( InputStream is ) throws java.io.IOException 44 static GatsObject read( InputStream is ) throws java.io.IOException
45 { 45 {
46 char type = (char)is.read(); 46 int b = is.read();
47 char type = (char)b;
47 GatsObject goRet = null; 48 GatsObject goRet = null;
48 switch( type ) 49 switch( type )
49 { 50 {
@@ -77,7 +78,7 @@ public abstract class GatsObject
77 return null; 78 return null;
78 79
79 default: 80 default:
80 throw new java.io.IOException("Invalid gats type discovered: " + (char)type ); 81 throw new java.io.IOException("Invalid gats type discovered: " + type + ", (" + b + ")" );
81 } 82 }
82 83
83 goRet.read( is, type ); 84 goRet.read( is, type );
diff --git a/java/com/xagasoft/gats/GatsString.java b/java/com/xagasoft/gats/GatsString.java
index e119aec..8e5c5c0 100644
--- a/java/com/xagasoft/gats/GatsString.java
+++ b/java/com/xagasoft/gats/GatsString.java
@@ -59,9 +59,13 @@ public class GatsString extends GatsObject
59 59
60 void read( InputStream is, char cType ) throws java.io.IOException 60 void read( InputStream is, char cType ) throws java.io.IOException
61 { 61 {
62 long lSize = GatsInteger.readPackedInt( is ); 62 int lSize = (int)GatsInteger.readPackedInt( is );
63 aValue = new byte[(int)lSize]; 63 aValue = new byte[lSize];
64 is.read( aValue ); 64 int lRead = 0;
65 do
66 {
67 lRead += is.read( aValue, lRead, lSize-lRead );
68 } while( lRead < lSize );
65 } 69 }
66 70
67 void write( OutputStream os ) throws java.io.IOException 71 void write( OutputStream os ) throws java.io.IOException