Bugfix for Hadoop bug in VKmer and PositionList
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java
index 8de4b0e..f0b2850 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java
@@ -243,9 +243,10 @@
 
     @Override
     public void readFields(DataInput in) throws IOException {
-        this.valueCount = in.readInt();
-        setSize(valueCount * PositionWritable.LENGTH + HEADER_SIZE);
-        in.readFully(storage, offset + HEADER_SIZE, valueCount * PositionWritable.LENGTH);
+        int newValueCount = in.readInt();
+        setSize(newValueCount * PositionWritable.LENGTH + HEADER_SIZE);
+        in.readFully(storage, offset + HEADER_SIZE, newValueCount * PositionWritable.LENGTH);
+        valueCount = newValueCount;
         Marshal.putInt(valueCount, storage, offset);
     }
 
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 4f34542..73edd9d 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
@@ -362,6 +362,7 @@
             }
             in.readFully(bytes, kmerStartOffset, bytesUsed);
         }
+        saveHeader(lettersInKmer);
     }
 
     /**
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerListWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerListWritable.java
index abd46ef..9895406 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerListWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerListWritable.java
@@ -247,13 +247,12 @@
     @Override
     public void readFields(DataInput in) throws IOException {
         reset();
-        valueCount = in.readInt();
-        Marshal.putInt(valueCount, storage, offset);
+        int newValueCount = in.readInt();
         int curOffset = offset + HEADER_SIZE;
         int elemBytes = 0;
         int elemLetters = 0;
         int curLength = getLength();
-        for (int i = 0; i < valueCount; i++) {
+        for (int i = 0; i < newValueCount; i++) {
             elemLetters = in.readInt();
             elemBytes = KmerUtil.getByteNumFromK(elemLetters) + VKmerBytesWritable.HEADER_SIZE;
             setSize(curLength + elemBytes); // make sure we have room for the new element
@@ -262,6 +261,8 @@
             curOffset += elemBytes;
             curLength += elemBytes;
         }
+        valueCount = newValueCount;
+        Marshal.putInt(valueCount, storage, offset);
     }
 
     @Override