Author: trustin
Date: Thu Mar 1 23:55:53 2007
New Revision: 513649
URL: http://svn.apache.org/viewvc?view=rev&rev=513649
Log:
Added ByteBuffer.getHexDump(int lengthLimit) that limits the length of the
generated dump string.
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java
mina/trunk/core/src/main/java/org/apache/mina/common/support/ByteBufferHexDumper.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java?view=diff&rev=513649&r1=513648&r2=513649
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/ByteBuffer.java Thu
Mar 1 23:55:53 2007
@@ -882,7 +882,17 @@
*/
public String getHexDump()
{
- return ByteBufferHexDumper.getHexdump( this );
+ return this.getHexDump(Integer.MAX_VALUE);
+ }
+
+ /**
+ * Return hexdump of this buffer with limited length.
+ *
+ * @param lengthLimit The maximum number of bytes to dump from
+ * the current buffer position.
+ */
+ public String getHexDump(int lengthLimit) {
+ return ByteBufferHexDumper.getHexdump(this, lengthLimit);
}
////////////////////////////////
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/support/ByteBufferHexDumper.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/support/ByteBufferHexDumper.java?view=diff&rev=513649&r1=513648&r2=513649
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/common/support/ByteBufferHexDumper.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/common/support/ByteBufferHexDumper.java
Thu Mar 1 23:55:53 2007
@@ -54,9 +54,21 @@
lowDigits = low;
}
- public static String getHexdump( ByteBuffer in )
+ public static String getHexdump( ByteBuffer in, int lengthLimit )
{
- int size = in.remaining();
+ if( lengthLimit == 0 )
+ {
+ throw new IllegalArgumentException(
+ "lengthLimit: " + lengthLimit + " (expected: 1+)");
+ }
+
+ boolean truncate = in.remaining() > lengthLimit;
+ int size;
+ if (truncate) {
+ size = lengthLimit;
+ } else {
+ size = in.remaining();
+ }
if( size == 0 )
{
@@ -83,6 +95,10 @@
}
in.position( mark );
+
+ if (truncate) {
+ out.append("...");
+ }
return out.toString();
}