diff options
Diffstat (limited to 'java/src/IceInternal/TraceUtil.java')
-rw-r--r-- | java/src/IceInternal/TraceUtil.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/java/src/IceInternal/TraceUtil.java b/java/src/IceInternal/TraceUtil.java index 2ca8b5402ce..479ceaf7cd5 100644 --- a/java/src/IceInternal/TraceUtil.java +++ b/java/src/IceInternal/TraceUtil.java @@ -18,6 +18,7 @@ final class TraceUtil { if (tl.protocol >= 1) { + stream.disableStringReadTableUpdates(); int pos = stream.pos(); stream.pos(0); java.io.StringWriter s = new java.io.StringWriter(); @@ -25,6 +26,7 @@ final class TraceUtil printHeader(s, stream); logger.trace(tl.protocolCat, s.toString()); stream.pos(pos); + stream.enableStringReadTableUpdates(); } } @@ -34,6 +36,7 @@ final class TraceUtil { if (tl.protocol >= 1) { + stream.disableStringReadTableUpdates(); int pos = stream.pos(); stream.pos(0); java.io.StringWriter s = new java.io.StringWriter(); @@ -48,6 +51,7 @@ final class TraceUtil printRequestHeader(s, stream); logger.trace(tl.protocolCat, s.toString()); stream.pos(pos); + stream.enableStringReadTableUpdates(); } } @@ -57,6 +61,7 @@ final class TraceUtil { if (tl.protocol >= 1) { + stream.disableStringReadTableUpdates(); int pos = stream.pos(); stream.pos(0); java.io.StringWriter s = new java.io.StringWriter(); @@ -72,6 +77,7 @@ final class TraceUtil } logger.trace(tl.protocolCat, s.toString()); stream.pos(pos); + stream.enableStringReadTableUpdates(); } } @@ -81,6 +87,7 @@ final class TraceUtil { if (tl.protocol >= 1) { + stream.disableStringReadTableUpdates(); int pos = stream.pos(); stream.pos(0); java.io.StringWriter s = new java.io.StringWriter(); @@ -135,6 +142,53 @@ final class TraceUtil } logger.trace(tl.protocolCat, s.toString()); stream.pos(pos); + stream.enableStringReadTableUpdates(); + } + } + + public static void + dumpStream(BasicStream stream) + { + final int inc = 8; + + int pos = stream.pos(); + stream.pos(0); + + byte[] data = stream.readBlob(stream.size()); + + for(int i = 0; i < data.length; i += inc) + { + for(int j = i ; j - i < inc ; j++) + { + if(j < data.length) + { + int n = (int)data[j]; + if(n < 0) + n += 256; + String s; + if(n < 10) + s = " " + n; + else if(n < 100) + s = " " + n; + else + s = "" + n; + System.out.print(s + " "); + } + else + System.out.print(" "); + } + + System.out.print('"'); + + for(int j = i; j < data.length && j - i < inc; j++) + { + if(data[j] >= (byte)32 && data[j] < (byte)127) + System.out.print((char)data[j]); + else + System.out.print('.'); + } + + System.out.println('"'); } } |