Added a test for the mark() method
diff --git a/codec/src/test/java/org/apache/mina/codec/IoBufferTest.java b/codec/src/test/java/org/apache/mina/codec/IoBufferTest.java
index 9e2a3b2..cd0931f 100644
--- a/codec/src/test/java/org/apache/mina/codec/IoBufferTest.java
+++ b/codec/src/test/java/org/apache/mina/codec/IoBufferTest.java
@@ -152,12 +152,12 @@
         ioBuffer.add(bb1, bb2);
     }
 
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     // Test the allocate(int) method
     // 1) allocation with a negative value
     // 2) allocation with a 0 length
     // 3) allocation with a 1024 value
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     /**
      * Test the allocation of a new heap IoBuffer with a negative value
      */
@@ -194,12 +194,12 @@
         assertTrue(ioBuffer.hasRemaining());
     }
 
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     // Test the allocateDirect(int) method. We check :
     // 1) allocation with a negative value
     // 2) allocation with a 0 length
     // 3) allocation with a 1024 value
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     /**
      * Test the allocation of a new heap IoBuffer with a negative value
      */
@@ -237,7 +237,8 @@
     }
 
     /**
-     * Test the get() method on a IoBuffer containing one ByteBuffer with 3 bytes
+     * Test the get() method on a IoBuffer containing one ByteBuffer with 3
+     * bytes
      */
     @Test
     public void testGetOneBuffer3Bytes() {
@@ -267,7 +268,8 @@
     }
 
     /**
-     * Test the get() method on a IoBuffer containing one ByteBuffer with 0 bytes
+     * Test the get() method on a IoBuffer containing one ByteBuffer with 0
+     * bytes
      */
     @Test
     public void testGetOneBuffer0Bytes() {
@@ -288,7 +290,8 @@
     }
 
     /**
-     * Test the get() method on a IoBuffer containing two ByteBuffer with 3 bytes
+     * Test the get() method on a IoBuffer containing two ByteBuffer with 3
+     * bytes
      */
     @Test
     public void testGetTwoBuffer3Bytes() {
@@ -328,13 +331,13 @@
         }
     }
 
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     // Test the array() method. We will check those cases :
     // 1) array over an empty buffer: we should get an empty byte array
-    // 2) array over a buffer with one single empty ByteBuffer 
+    // 2) array over a buffer with one single empty ByteBuffer
     // 3) array over a buffer with one single ByteBuffer with data
-    // 4) array over a buffer containing many ByteBuffers 
-    //-------------------------------------------------------------------------
+    // 4) array over a buffer containing many ByteBuffers
+    // -------------------------------------------------------------------------
     /**
      * Test the array method for a IoBuffer containing one empty ByteBuffer
      */
@@ -349,7 +352,8 @@
     }
 
     /**
-     * Test the array method for a IoBuffer containing one ByteBuffer (cases 2 and 3)
+     * Test the array method for a IoBuffer containing one ByteBuffer (cases 2
+     * and 3)
      */
     @Test
     public void testArrayOneByteBuffer() {
@@ -374,7 +378,8 @@
     }
 
     /**
-     * Test the array method for a IoBuffer containing one ByteBuffer not initialized
+     * Test the array method for a IoBuffer containing one ByteBuffer not
+     * initialized
      */
     @Test
     public void testArrayByteBufferNotInitialized() {
@@ -403,7 +408,8 @@
     }
 
     /**
-     * Test the getInt() method, on a buffer containing 2 ints in two ByteBuffers
+     * Test the getInt() method, on a buffer containing 2 ints in two
+     * ByteBuffers
      */
     @Test
     public void testGetInt2Ints2BBs() {
@@ -422,8 +428,8 @@
     }
 
     /**
-     * Test the getInt() method, on a buffer containing 2 ints in two ByteBuffers
-     * with LittleInidan order
+     * Test the getInt() method, on a buffer containing 2 ints in two
+     * ByteBuffers with LittleInidan order
      */
     @Test
     public void testGetInt2Ints2BBsLittleIndian() {
@@ -445,7 +451,8 @@
     }
 
     /**
-     * Test the getInt() method, on a buffer containing 1 int spread in two ByteBuffers
+     * Test the getInt() method, on a buffer containing 1 int spread in two
+     * ByteBuffers
      */
     @Test
     public void testGetInt1Int2BBs() {
@@ -463,7 +470,8 @@
     }
 
     /**
-     * Test the getInt() method, on a buffer containing 1 incomplet int spread in two ByteBuffers
+     * Test the getInt() method, on a buffer containing 1 incomplet int spread
+     * in two ByteBuffers
      */
     @Test(expected = BufferUnderflowException.class)
     public void testGetIntIncompletInt2BBs() {
@@ -542,14 +550,14 @@
         }
     }
 
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     // The the clear method. It will erase all the data in all the inner
     // ByteBuffer, thus the buffer size might increase.
     // We will check those case :
     // 1) clear an empty buffer
     // 2) clear a buffer with one ByteBuffer
     // 3) clear a buffer with numerous ByteBuffers
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     /**
      * Test the clear() method
      */
@@ -601,6 +609,18 @@
         ioBuffer.position(3);
         ioBuffer.mark();
 
+        // check that we are at the right position
+        byte b = ioBuffer.get();
+        assertEquals(b, '3');
+
+        b = ioBuffer.get();
+        assertEquals(b, '4');
+
+        // Now reset to the mark
+        ioBuffer.reset();
+        b = ioBuffer.get();
+        assertEquals(b, '3');
+
         ioBuffer.position(6);
         ioBuffer.reset();
 
@@ -614,7 +634,7 @@
             ioBuffer.reset();
             fail("An InvalidMarkException should have been thrown");
         } catch (InvalidMarkException ime) {
-            // 
+            //
         }
     }
 
@@ -645,13 +665,13 @@
         assertEquals(8, ioBuffer.limit());
     }
 
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     // Test the position() method
-    // We will test that the position() metho returns the correct result in 
+    // We will test that the position() metho returns the correct result in
     // those cases :
     // 1) the buffer is empty : must return 0
     // 2) must return a value between 0 and limit()
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     /**
      * Test the position method over an emptyIoBuffer
      */
@@ -716,19 +736,19 @@
         }
     }
 
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     // Test the position(int) method
     // We will test many different cases
     // 1) a position() in an empty buffer
     // 2) a position() with a negative value
     // 3) a position() with a value above the limit
     // 4) a position() within the current buffer
-    //  4-1) at the beginning of the current buffer
-    //  4-2) at the end of the current buffer
-    //  4-3) in the middle of the current buffer
+    // 4-1) at the beginning of the current buffer
+    // 4-2) at the end of the current buffer
+    // 4-3) in the middle of the current buffer
     // 5) a position() before the current buffer
     // 6) a position() after the current buffer
-    //-------------------------------------------------------------------------
+    // -------------------------------------------------------------------------
     /**
      * Test the position method over an emptyIoBuffer
      */
@@ -1043,7 +1063,7 @@
                 ioBuffer.putChar(3, '\u00F1');
                 fail("Not enough place on the buffer");
             } catch (BufferUnderflowException e) {
-                // Should come here                
+                // Should come here
             }
 
             try {