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

Conflicts:
	genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapReadToNodeOperator.java
	genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/aggregators/MergeReadIDAggregateFactory.java
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 11d0998..34fb0f6 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
@@ -132,6 +132,9 @@
     
     public static int getCountByDataLength(int length) {
         if (length % PositionWritable.LENGTH != 0) {
+            for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
+                System.out.println(ste);
+            }
             throw new IllegalArgumentException("Length of positionlist is invalid");
         }
         return length / PositionWritable.LENGTH;
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/io/KMerTextWriterFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/io/KMerTextWriterFactory.java
index f614846..7ea065d 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/io/KMerTextWriterFactory.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/io/KMerTextWriterFactory.java
@@ -33,15 +33,15 @@
 	 * 
 	 */
     private static final long serialVersionUID = 1L;
-    private KmerBytesWritable kmer;
-    private PositionListWritable plist;
-
+    
+    private final int kmerSize;
     public KMerTextWriterFactory(int k) {
-        kmer = new KmerBytesWritable(k);
-        plist = new PositionListWritable();
+        kmerSize =k;
     }
 
     public class TupleWriter implements ITupleWriter {
+        private KmerBytesWritable kmer = new KmerBytesWritable(kmerSize);
+        private PositionListWritable plist = new PositionListWritable();
         @Override
         public void write(DataOutput output, ITupleReference tuple) throws HyracksDataException {
             try {
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/startDebugNc.sh b/genomix/genomix-hyracks/src/main/resources/scripts/startDebugNc.sh
index c335475..5f89bcc 100644
--- a/genomix/genomix-hyracks/src/main/resources/scripts/startDebugNc.sh
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/startDebugNc.sh
@@ -12,11 +12,11 @@
 #Clean up temp dir
 
 #rm -rf $NCTMP_DIR2
-mkdir $NCTMP_DIR2
+mkdir -p $NCTMP_DIR2
 
 #Clean up log dir
 #rm -rf $NCLOGS_DIR2
-mkdir $NCLOGS_DIR2
+mkdir -p $NCLOGS_DIR2
 
 
 #Clean up I/O working dir
@@ -35,16 +35,14 @@
 
 #Get node ID
 NODEID=`hostname | cut -d '.' -f 1`
-NODEID=${NODEID}2
 
 #Set JAVA_OPTS
 export JAVA_OPTS=$NCJAVA_OPTS2
 
-cd $HYRACKS_HOME
-HYRACKS_HOME=`pwd`
+GENOMIX_HOME=`pwd`
 
 #Enter the temp dir
 cd $NCTMP_DIR2
 
 #Launch hyracks nc
-$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyracksnc -cc-host $CCHOST -cc-port $CC_CLUSTERPORT -cluster-net-ip-address $IPADDR  -data-ip-address $IPADDR -node-id $NODEID -iodevices "${IO_DIRS2}" &> $NCLOGS_DIR2/$NODEID.log &
+${GENOMIX_HOME}/bin/genomixnc -cc-host $CCHOST -cc-port $CC_CLUSTERPORT -cluster-net-ip-address $IPADDR  -data-ip-address $IPADDR -result-ip-address $IPADDR -node-id $NODEID -iodevices "${IO_DIRS}" &> $NCLOGS_DIR/$NODEID.log &