Author: elecharny
Date: Tue Oct 21 04:41:51 2008
New Revision: 706583

URL: http://svn.apache.org/viewvc?rev=706583&view=rev
Log:
Fixed the bug in slice(int, int).

Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java?rev=706583&r1=706582&r2=706583&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java 
Tue Oct 21 04:41:51 2008
@@ -709,9 +709,14 @@
         if (length < 0) {
             throw new IllegalArgumentException("length: " + length);
         }
-        int pos = position();
+        
         int limit = limit();
-        int endIndex = pos + length;
+        
+        if (index > limit) {
+            throw new IllegalArgumentException("index: " + index);
+        }
+        
+        int endIndex = index + length;
 
         if (capacity() < endIndex) {
             throw new IndexOutOfBoundsException("index + length (" + endIndex
@@ -723,7 +728,7 @@
         limit(endIndex);
 
         IoBuffer slice = slice();
-        position(pos);
+        position(index);
         limit(limit);
         return slice;
     }


Reply via email to