add protect to array index overflow
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerUtil.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerUtil.java
index 9dc1dde..59cc3b0 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerUtil.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerUtil.java
@@ -1,6 +1,7 @@
 package edu.uci.ics.genomix.type;
 
 public class KmerUtil {
+    public static final String empty = "";
 
     public static int getByteNumFromK(int k) {
         int x = k / 4;
@@ -18,6 +19,9 @@
     public static String recoverKmerFrom(int k, byte[] keyData, int keyStart, int keyLength) {
         StringBuilder strKmer = new StringBuilder();
         int byteId = keyStart + keyLength - 1;
+        if (byteId < 0){
+            return empty;
+        }
         byte currentbyte = keyData[byteId];
         for (int geneCount = 0; geneCount < k; geneCount++) {
             if (geneCount % 4 == 0 && geneCount > 0) {
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
index 493191a..28c6c58 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
@@ -107,7 +107,7 @@
             int kmerlength1 = readInt(b1, s1);
             int kmerlength2 = readInt(b2, s2);
             if (kmerlength1 == kmerlength2) {
-                compareBytes(b1, s1 + LEAD_BYTES, l1 - LEAD_BYTES, b2, s2 + LEAD_BYTES, l2 - LEAD_BYTES);
+                return compareBytes(b1, s1 + LEAD_BYTES, l1 - LEAD_BYTES, b2, s2 + LEAD_BYTES, l2 - LEAD_BYTES);
             }
             return kmerlength1 - kmerlength2;
         }