Merge branch 'jianfeng/genomix' into jianfeng/genomix-reverse

Conflicts:
	genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenMapKmerToRead.java
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapKmerPositionToReadOperator.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapKmerPositionToReadOperator.java
index f625143..8609519 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapKmerPositionToReadOperator.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapKmerPositionToReadOperator.java
@@ -137,8 +137,10 @@
         private void appendNodeToBuilder(int tIndex, PositionReference pos, ArrayBackedValueStorage posList2,
                 ArrayTupleBuilder builder2) {
             try {
+                builder2.reset();
                 builder2.addField(pos.getByteArray(), pos.getStartOffset(), PositionReference.INTBYTES);
                 builder2.addField(pos.getByteArray(), pos.getStartOffset() + PositionReference.INTBYTES, 1);
+                
                 if (posList2 == null) {
                     builder2.addFieldEndOffset();
                 } else {
@@ -163,7 +165,6 @@
                         throw new IllegalStateException();
                     }
                 }
-                builder2.reset();
             } catch (HyracksDataException e) {
                 throw new IllegalStateException(
                         "Failed to Add a field to the tuple by copying the data bytes from a byte array.");
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapReadToNodeOperator.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapReadToNodeOperator.java
index a775d7e..98d21af 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapReadToNodeOperator.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapReadToNodeOperator.java
@@ -247,6 +247,7 @@
                 return;
             }
             try {
+                builder.reset();
                 builder.addField(node.getNodeID().getByteArray(), node.getNodeID().getStartOffset(), node.getNodeID()
                         .getLength());
                 builder.getDataOutput().writeInt(node.getCount());
@@ -268,7 +269,6 @@
                         throw new IllegalStateException("Failed to append tuplebuilder to frame");
                     }
                 }
-                builder.reset();
             } catch (IOException e) {
                 throw new IllegalStateException("Failed to Add a field to the tupleBuilder.");
             }
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenMapKmerToRead.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenMapKmerToRead.java
index 968123e..2872a2d 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenMapKmerToRead.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenMapKmerToRead.java
@@ -76,10 +76,11 @@
                                             tuple.getFieldData(MapKmerPositionToReadOperator.OutputOtherReadIDListField),
                                             tuple.getFieldStart(MapKmerPositionToReadOperator.OutputOtherReadIDListField));
 
+
                                     String kmerString = "";
                                     if (posInRead > 0) {
                                         if (kmer.getLength() > tuple
-                                                .getFieldLength(ReadsKeyValueParserFactory.OutputKmerField)) {
+                                                .getFieldLength(MapKmerPositionToReadOperator.OutputKmerField)) {
                                             throw new IllegalArgumentException("Not enough kmer bytes");
                                         }
                                         kmer.setNewReference(