diff --git a/java/src/com/android/inputmethod/latin/UserHistoryDictIOUtils.java b/java/src/com/android/inputmethod/latin/UserHistoryDictIOUtils.java
index 4a3d11aa1322d18d91d29edb9a5cbf1dc369da4a..05255a6b30ec654c8586ebc65a279951fb11a27d 100644
--- a/java/src/com/android/inputmethod/latin/UserHistoryDictIOUtils.java
+++ b/java/src/com/android/inputmethod/latin/UserHistoryDictIOUtils.java
@@ -100,6 +100,11 @@ public class UserHistoryDictIOUtils {
 
         @Override
         public int limit() {
+            return mBuffer.length - 1;
+        }
+
+        @Override
+        public int capacity() {
             return mBuffer.length;
         }
     }
diff --git a/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java b/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java
index d4a4d7cda8f10f60eb88fb17b05bde7cce251c2d..f9339de085b7d8609c04995b2ecdae4edad2124a 100644
--- a/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java
+++ b/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java
@@ -63,6 +63,7 @@ public class BinaryDictInputOutput {
         public void position(int newPosition);
         public void put(final byte b);
         public int limit();
+        public int capacity();
     }
 
     public static final class ByteBufferWrapper implements FusionDictionaryBufferInterface {
@@ -112,6 +113,11 @@ public class BinaryDictInputOutput {
         public int limit() {
             return mBuffer.limit();
         }
+
+        @Override
+        public int capacity() {
+            return mBuffer.capacity();
+        }
     }
 
     /**