Adds hex dump length safety check
diff --git a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBuffer.java b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBuffer.java
index 844ca96..0313d79 100644
--- a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBuffer.java
+++ b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBuffer.java
@@ -1545,8 +1545,8 @@
* @return hexidecimal representation of this buffer
*/
public String getHexDump(int length, boolean pretty) {
- return (pretty) ? IoBufferHexDumper.getPrettyHexDumpSlice(this, this.position(), length)
- : IoBufferHexDumper.getHexDumpSlice(this, this.position(), length);
+ return (pretty) ? IoBufferHexDumper.getPrettyHexDumpSlice(this, this.position(), Math.min(this.remaining(), length))
+ : IoBufferHexDumper.getHexDumpSlice(this, this.position(), Math.min(this.remaining(), length));
}
// //////////////////////////////
diff --git a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferHexDumper.java b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferHexDumper.java
index 14f4582..ef02ed3 100644
--- a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferHexDumper.java
+++ b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferHexDumper.java
@@ -20,7 +20,6 @@
package org.apache.mina.core.buffer;
import java.io.UnsupportedEncodingException;
-import java.nio.charset.StandardCharsets;
/**
* Provides utility methods to dump an {@link IoBuffer} into a hex formatted
diff --git a/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferHexDumperTest.java b/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferHexDumperTest.java
index cc47a43..e17b454 100644
--- a/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferHexDumperTest.java
+++ b/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferHexDumperTest.java
@@ -16,10 +16,6 @@
buf.flip();
-// System.out.println(buf.getHexDump());
-// System.out.println(buf.getHexDump(20));
-// System.out.println(buf.getHexDump(50));
-
/* special case */
assertEquals(0, buf.getHexDump(0).length());
@@ -28,9 +24,9 @@
assertEquals((Math.min(300, buf.limit()) * 3) - 1, buf.getHexDump(300).length());
/* must truncate */
- assertEquals((7 * 3) + 2, buf.getHexDump(7).length());
- assertEquals((10 * 3) + 2, buf.getHexDump(10).length());
- assertEquals((30 * 3) + 2, buf.getHexDump(30).length());
+ assertEquals((7 * 3) - 1, buf.getHexDump(7).length());
+ assertEquals((10 * 3) - 1, buf.getHexDump(10).length());
+ assertEquals((30 * 3) - 1, buf.getHexDump(30).length());
}
@@ -44,15 +40,7 @@
buf.flip();
-// System.out.println(buf.getHexDump(0, true));
-// System.out.println(buf.getHexDump(20, true));
-// System.out.println(buf.getHexDump(50, true));
-
String[] dump = buf.getHexDump(50, true).split("\\n");
-
- for (String x : dump) {
- System.out.println(x);
- }
assertEquals(4, dump.length);
}