You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2017/10/13 03:46:34 UTC

[5/8] systemml git commit: [MINOR] Cleanup various issues raised by static code analysis, part 3

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
index 850d4ea..cfd2456 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/PmmSPInstruction.java
@@ -131,7 +131,7 @@ public class PmmSPInstruction extends BinarySPInstruction {
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call( Tuple2<MatrixIndexes, MatrixBlock> arg0 ) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			MatrixIndexes ixIn = arg0._1();
 			MatrixBlock mb2 = arg0._2();
 			
@@ -163,9 +163,9 @@ public class PmmSPInstruction extends BinarySPInstruction {
 				//hence we do a meta data correction afterwards)
 				mb1.permutationMatrixMultOperations(mb2, out1, out2);
 				out1.setNumRows(UtilFunctions.computeBlockSize(_rlen, rowIX1, _brlen));
-				ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(rowIX1, ixIn.getColumnIndex()), out1));
+				ret.add(new Tuple2<>(new MatrixIndexes(rowIX1, ixIn.getColumnIndex()), out1));
 				if( out2 != null )
-					ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(rowIX2, ixIn.getColumnIndex()), out2));
+					ret.add(new Tuple2<>(new MatrixIndexes(rowIX2, ixIn.getColumnIndex()), out2));
 			}
 			
 			return ret.iterator();

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
index 907fa6f..a4d3b2e 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/QuaternarySPInstruction.java
@@ -200,8 +200,8 @@ public class QuaternarySPInstruction extends ComputationSPInstruction {
 		QuaternaryOperator qop = (QuaternaryOperator) _optr;
 		
 		//tracking of rdds and broadcasts (for lineage maintenance)
-		ArrayList<String> rddVars = new ArrayList<String>();
-		ArrayList<String> bcVars = new ArrayList<String>();
+		ArrayList<String> rddVars = new ArrayList<>();
+		ArrayList<String> bcVars = new ArrayList<>();
 
 		JavaPairRDD<MatrixIndexes,MatrixBlock> in = sec.getBinaryBlockRDDHandleForVariable( input1.getName() );
 		JavaPairRDD<MatrixIndexes, MatrixBlock> out = null;
@@ -399,8 +399,8 @@ public class QuaternarySPInstruction extends ComputationSPInstruction {
 				
 				//create return tuple
 				MatrixIndexes ixOut = createOutputIndexes(ixIn);
-				return new Tuple2<MatrixIndexes,MatrixBlock>(ixOut, blkOut);
-			}			
+				return new Tuple2<>(ixOut, blkOut);
+			}
 			
 		}
 	}
@@ -433,8 +433,8 @@ public class QuaternarySPInstruction extends ComputationSPInstruction {
 			blkIn1.quaternaryOperations(_qop, mbU, mbV, mbW, blkOut);
 			
 			//create return tuple
-			MatrixIndexes ixOut = createOutputIndexes(ixIn);			
-			return new Tuple2<MatrixIndexes,MatrixBlock>(ixOut, blkOut);
+			MatrixIndexes ixOut = createOutputIndexes(ixIn);
+			return new Tuple2<>(ixOut, blkOut);
 		}
 	}
 
@@ -470,7 +470,7 @@ public class QuaternarySPInstruction extends ComputationSPInstruction {
 			
 			//create return tuple
 			MatrixIndexes ixOut = createOutputIndexes(ixIn);
-			return new Tuple2<MatrixIndexes,MatrixBlock>(ixOut, blkOut);
+			return new Tuple2<>(ixOut, blkOut);
 		}
 	}
 	
@@ -504,7 +504,7 @@ public class QuaternarySPInstruction extends ComputationSPInstruction {
 			
 			//create return tuple
 			MatrixIndexes ixOut = createOutputIndexes(ixIn1);
-			return new Tuple2<MatrixIndexes,MatrixBlock>(ixOut, blkOut);
+			return new Tuple2<>(ixOut, blkOut);
 		}
 	}
 	
@@ -524,7 +524,7 @@ public class QuaternarySPInstruction extends ComputationSPInstruction {
 			MatrixBlock blkOut = new MatrixBlock(blkIn);
 			
 			//output new tuple
-			return new Tuple2<MatrixIndexes, MatrixBlock>(ixOut,blkOut);
+			return new Tuple2<>(ixOut,blkOut);
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
index 668a7d6..b50bf73 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/RandSPInstruction.java
@@ -354,26 +354,25 @@ public class RandSPInstruction extends UnarySPInstruction {
 		double hdfsBlkSize = InfrastructureAnalyzer.getHDFSBlockSize();
 		long numBlocks = new MatrixCharacteristics(rows, cols, rowsInBlock, colsInBlock).getNumBlocks();
 		long numColBlocks = (long)Math.ceil((double)cols/(double)colsInBlock);
-				
+		
 		//a) in-memory seed rdd construction 
 		if( numBlocks < INMEMORY_NUMBLOCKS_THRESHOLD )
 		{
 			ArrayList<Tuple2<MatrixIndexes, Tuple2<Long, Long>>> seeds = 
-					new ArrayList<Tuple2<MatrixIndexes, Tuple2<Long, Long>>>();
+					new ArrayList<>();
 			for( long i=0; i<numBlocks; i++ ) {
 				long r = 1 + i/numColBlocks;
 				long c = 1 + i%numColBlocks;
 				MatrixIndexes indx = new MatrixIndexes(r, c);
 				Long seedForBlock = bigrand.nextLong();
-				seeds.add(new Tuple2<MatrixIndexes, Tuple2<Long, Long>>(indx, 
-						new Tuple2<Long, Long>(seedForBlock, nnzIter.nextLong())));
+				seeds.add(new Tuple2<>(indx, new Tuple2<>(seedForBlock, nnzIter.nextLong())));
 			}
 			
 			//for load balancing: degree of parallelism such that ~128MB per partition
 			int numPartitions = (int) Math.max(Math.min(totalSize/hdfsBlkSize, numBlocks), 1);
 				
 			//create seeds rdd 
-			seedsRDD = sec.getSparkContext().parallelizePairs(seeds, numPartitions);				
+			seedsRDD = sec.getSparkContext().parallelizePairs(seeds, numPartitions);
 		}
 		//b) file-based seed rdd construction (for robustness wrt large number of blocks)
 		else
@@ -454,7 +453,7 @@ public class RandSPInstruction extends UnarySPInstruction {
 		//a) in-memory offset rdd construction 
 		if( numBlocks < INMEMORY_NUMBLOCKS_THRESHOLD )
 		{
-			ArrayList<Double> offsets = new ArrayList<Double>();
+			ArrayList<Double> offsets = new ArrayList<>();
 			for( long i=0; i<numBlocks; i++ ) {
 				double off = seq_from + seq_incr*i*rowsInBlock;
 				offsets.add(off);
@@ -539,13 +538,12 @@ public class RandSPInstruction extends UnarySPInstruction {
 		int numPartitions = (int) Math.ceil((double)outputSize/hdfsBlockSize);
 		long partitionSize = (long) Math.ceil(maxValue/numPartitions);
 
-		ArrayList<SampleTask> offsets = new ArrayList<SampleTask>();
+		ArrayList<SampleTask> offsets = new ArrayList<>();
 		long st = 1;
 		while ( st <= maxValue ) {
 			SampleTask s = new SampleTask();
 			s.range_start = st;
 			s.seed = bigrand.nextLong();
-			
 			offsets.add(s);
 			st = st + partitionSize;
 		}
@@ -585,7 +583,7 @@ public class RandSPInstruction extends UnarySPInstruction {
 		private static final long serialVersionUID = -725284524434342939L;
 		long seed;
 		long range_start;
-		
+		@Override
 		public String toString() { return "(" + seed + "," + range_start +")"; } 
 	}
 	
@@ -630,7 +628,7 @@ public class RandSPInstruction extends UnarySPInstruction {
 
 			long st = t.range_start;
 			long end = Math.min(t.range_start+_partitionSize, _maxValue);
-			ArrayList<Double> retList = new ArrayList<Double>();
+			ArrayList<Double> retList = new ArrayList<>();
 			
 			if ( _frac == 1.0 ) 
 			{
@@ -696,8 +694,7 @@ public class RandSPInstruction extends UnarySPInstruction {
 			long rowID = t._2()+1;
 			MatrixIndexes mi = new MatrixIndexes(rowID, 1);
 			MatrixCell mc = new MatrixCell(t._1());
-			
-			return new Tuple2<MatrixIndexes, MatrixCell>(mi, mc);
+			return new Tuple2<>(mi, mc);
 		}
 	}
 	
@@ -714,7 +711,7 @@ public class RandSPInstruction extends UnarySPInstruction {
 		}
 		@Override
 		public Tuple2<Double, Double> call(Double t) throws Exception {
-			return new Tuple2<Double,Double>( r.nextDouble(), t );
+			return new Tuple2<>( r.nextDouble(), t );
 		}
 	}
 
@@ -728,10 +725,9 @@ public class RandSPInstruction extends UnarySPInstruction {
 			String[] parts = IOUtilFunctions.split(arg, ",");
 			MatrixIndexes ix = new MatrixIndexes(
 					Long.parseLong(parts[0]), Long.parseLong(parts[1]));
-			Tuple2<Long,Long> seed = new Tuple2<Long,Long>(
+			Tuple2<Long,Long> seed = new Tuple2<>(
 					Long.parseLong(parts[2]), Long.parseLong(parts[3]));
-			
-			return new Tuple2<MatrixIndexes, Tuple2<Long, Long>>(ix,seed);
+			return new Tuple2<>(ix,seed);
 		}
 	}
 
@@ -780,19 +776,15 @@ public class RandSPInstruction extends UnarySPInstruction {
 			long blockColIndex = ix.getColumnIndex();
 			int lrlen = UtilFunctions.computeBlockSize(_rlen, blockRowIndex, _brlen);
 			int lclen = UtilFunctions.computeBlockSize(_clen, blockColIndex, _bclen);
-			
 			long seed = kv._2._1;
 			long blockNNZ = kv._2._2;
 			
 			MatrixBlock blk = new MatrixBlock();
-			
 			RandomMatrixGenerator rgen = LibMatrixDatagen.createRandomMatrixGenerator(
 					_pdf, lrlen, lclen, lrlen, lclen,   
 					_sparsity, _min, _max, _pdfParams );
-			
 			blk.randOperationsInPlace(rgen, LongStream.of(blockNNZ), null, seed);
-
-			return new Tuple2<MatrixIndexes, MatrixBlock>(kv._1, blk);
+			return new Tuple2<>(kv._1, blk);
 		}
 	}
 
@@ -819,12 +811,12 @@ public class RandSPInstruction extends UnarySPInstruction {
 			double seq_to = (_seq_incr > 0) ?
 				Math.min(_global_seq_end, seq_from + _seq_incr*(_brlen-1)) :
 				Math.max(_global_seq_end, seq_from + _seq_incr*(_brlen+1));
-			long globalRow = (long)Math.round((seq_from-_global_seq_start)/_seq_incr)+1;			
+			long globalRow = (long)Math.round((seq_from-_global_seq_start)/_seq_incr)+1;
 			long rowIndex = UtilFunctions.computeBlockIndex(globalRow, _brlen);
 			
 			MatrixIndexes indx = new MatrixIndexes(rowIndex, 1);
 			MatrixBlock blk = MatrixBlock.seqOperations(seq_from, seq_to, _seq_incr);
-			return new Tuple2<MatrixIndexes, MatrixBlock>(indx, blk);
+			return new Tuple2<>(indx, blk);
 		}	
 	}
 	
@@ -841,7 +833,7 @@ public class RandSPInstruction extends UnarySPInstruction {
 	private boolean isMemAvail(long lRows, long lCols, double sparsity, double min, double max) 
 	{
 		double size = (min == 0 && max == 0) ? OptimizerUtils.estimateSizeEmptyBlock(rows, cols):
-												OptimizerUtils.estimateSizeExactSparsity(rows, cols, sparsity);
+			OptimizerUtils.estimateSizeExactSparsity(rows, cols, sparsity);
 		
 		return ( OptimizerUtils.isValidCPDimensions(rows, cols)
 				 && OptimizerUtils.isValidCPMatrixSize(rows, cols, sparsity) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
index b547310..f8b92ac 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
@@ -242,7 +242,7 @@ public class ReorgSPInstruction extends UnarySPInstruction {
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call( Tuple2<MatrixIndexes, MatrixBlock> arg0 ) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<>();
 			
 			MatrixIndexes ixIn = arg0._1();
 			MatrixBlock blkIn = arg0._2();
@@ -251,16 +251,16 @@ public class ReorgSPInstruction extends UnarySPInstruction {
 			long rix = ixIn.getRowIndex();
 			MatrixIndexes ixOut = new MatrixIndexes(rix, rix);
 			MatrixBlock blkOut = (MatrixBlock) blkIn.reorgOperations(_reorgOp, new MatrixBlock(), -1, -1, -1);
-			ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(ixOut,blkOut));
+			ret.add(new Tuple2<>(ixOut,blkOut));
 			
 			// insert newly created empty blocks for entire row
 			int numBlocks = (int) Math.ceil((double)_mcIn.getRows()/_mcIn.getRowsPerBlock());
 			for(int i = 1; i <= numBlocks; i++) {
 				if(i != ixOut.getColumnIndex()) {
 					int lrlen = UtilFunctions.computeBlockSize(_mcIn.getRows(), rix, _mcIn.getRowsPerBlock());
-		    		int lclen = UtilFunctions.computeBlockSize(_mcIn.getRows(), i, _mcIn.getRowsPerBlock());
-		    		MatrixBlock emptyBlk = new MatrixBlock(lrlen, lclen, true);
-					ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(rix, i), emptyBlk));
+					int lclen = UtilFunctions.computeBlockSize(_mcIn.getRows(), i, _mcIn.getRowsPerBlock());
+					MatrixBlock emptyBlk = new MatrixBlock(lrlen, lclen, true);
+					ret.add(new Tuple2<>(new MatrixIndexes(rix, i), emptyBlk));
 				}
 			}
 			
@@ -288,7 +288,7 @@ public class ReorgSPInstruction extends UnarySPInstruction {
 			IndexedMatrixValue in = SparkUtils.toIndexedMatrixBlock(arg0);
 			
 			//execute reverse operation
-			ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();
+			ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 			LibMatrixReorg.rev(in, _mcIn.getRows(), _mcIn.getRowsPerBlock(), out);
 			
 			//construct output

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
index 43ba34a..608200f 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/RmmSPInstruction.java
@@ -140,7 +140,7 @@ public class RmmSPInstruction extends BinarySPInstruction {
 		public Iterator<Tuple2<TripleIndexes, MatrixBlock>> call( Tuple2<MatrixIndexes, MatrixBlock> arg0 ) 
 			throws Exception 
 		{
-			LinkedList<Tuple2<TripleIndexes, MatrixBlock>> ret = new LinkedList<Tuple2<TripleIndexes, MatrixBlock>>();
+			LinkedList<Tuple2<TripleIndexes, MatrixBlock>> ret = new LinkedList<>();
 			MatrixIndexes ixIn = arg0._1();
 			MatrixBlock blkIn = arg0._2();
 			
@@ -153,7 +153,7 @@ public class RmmSPInstruction extends BinarySPInstruction {
 				long k = ixIn.getColumnIndex();
 				for( long j=1; j<=numBlocks; j++ ) {
 					TripleIndexes tmptix = new TripleIndexes(i, j, k);
-					ret.add( new Tuple2<TripleIndexes, MatrixBlock>(tmptix, blkIn) );
+					ret.add( new Tuple2<>(tmptix, blkIn) );
 				}
 			} 
 			else // RHS MATRIX
@@ -163,7 +163,7 @@ public class RmmSPInstruction extends BinarySPInstruction {
 				long j = ixIn.getColumnIndex();
 				for( long i=1; i<=numBlocks; i++ ) {
 					TripleIndexes tmptix = new TripleIndexes(i, j, k);
-					ret.add( new Tuple2<TripleIndexes, MatrixBlock>(tmptix, blkIn) );
+					ret.add( new Tuple2<>(tmptix, blkIn) );
 				}
 			}
 			
@@ -197,9 +197,9 @@ public class RmmSPInstruction extends BinarySPInstruction {
 			
 			//core block matrix multiplication 
 			blkIn1.aggregateBinaryOperations(blkIn1, blkIn2, blkOut, _op);
-							
+			
 			//output new tuple
-			return new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, blkOut);
+			return new Tuple2<>(ixOut, blkOut);
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/TernarySPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/TernarySPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/TernarySPInstruction.java
index b4e48df..4ef5109 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/TernarySPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/TernarySPInstruction.java
@@ -263,7 +263,7 @@ public class TernarySPInstruction extends ComputationSPInstruction {
 			MatrixBlock mb = arg0._2(); //col-vector
 			
 			//create an output cell per matrix block row (aligned w/ original source position)
-			ArrayList<Tuple2<MatrixIndexes, Double>> retVal = new ArrayList<Tuple2<MatrixIndexes,Double>>();
+			ArrayList<Tuple2<MatrixIndexes, Double>> retVal = new ArrayList<>();
 			CTable ctab = CTable.getCTableFnObject();
 			for( int i=0; i<mb.getNumRows(); i++ )
 			{
@@ -274,7 +274,7 @@ public class TernarySPInstruction extends ComputationSPInstruction {
 				
 				//indirect construction over pair to avoid tuple2 dependency in general ctable obj
 				if( p.getKey().getRowIndex() >= 1 ) //filter rejected entries
-					retVal.add(new Tuple2<MatrixIndexes,Double>(p.getKey(), p.getValue()));
+					retVal.add(new Tuple2<>(p.getKey(), p.getValue()));
 			}
 			
 			return retVal.iterator();
@@ -306,9 +306,9 @@ public class TernarySPInstruction extends ComputationSPInstruction {
 			in1 = extractBlock(kv._2._1, in1);
 			in2 = extractBlock(kv._2._2, in2);
 			// Now return unflatten AL
-			ArrayList<MatrixBlock> inputs = new ArrayList<MatrixBlock>();
+			ArrayList<MatrixBlock> inputs = new ArrayList<>();
 			inputs.add(in1); inputs.add(in2);  
-			return new Tuple2<MatrixIndexes, ArrayList<MatrixBlock>>(kv._1, inputs);
+			return new Tuple2<>(kv._1, inputs);
 		}
 		
 	}
@@ -343,9 +343,9 @@ public class TernarySPInstruction extends ComputationSPInstruction {
 			in3 = extractBlock(kv._2._2, in3);
 			
 			// Now return unflatten AL
-			ArrayList<MatrixBlock> inputs = new ArrayList<MatrixBlock>();
+			ArrayList<MatrixBlock> inputs = new ArrayList<>();
 			inputs.add(in1); inputs.add(in2); inputs.add(in3);  
-			return new Tuple2<MatrixIndexes, ArrayList<MatrixBlock>>(kv._1, inputs);
+			return new Tuple2<>(kv._1, inputs);
 		}
 		
 	}
@@ -430,10 +430,9 @@ public class TernarySPInstruction extends ComputationSPInstruction {
 					break;
 				}
 				default:
-					throw new DMLRuntimeException("Unrecognized opcode in Tertiary Instruction: " + instString);		
+					throw new DMLRuntimeException("Unrecognized opcode in Tertiary Instruction: " + instString);
 			}
-			
-			return new Tuple2<MatrixIndexes, CTableMap>(kv._1, ctableResult);
+			return new Tuple2<>(kv._1, ctableResult);
 		}
 		
 	}
@@ -445,9 +444,9 @@ public class TernarySPInstruction extends ComputationSPInstruction {
 		@Override
 		public Tuple2<MatrixIndexes, ArrayList<MatrixBlock>> call(
 				Tuple2<MatrixIndexes, MatrixBlock> kv) throws Exception {
-			ArrayList<MatrixBlock> retVal = new ArrayList<MatrixBlock>();
+			ArrayList<MatrixBlock> retVal = new ArrayList<>();
 			retVal.add(kv._2);
-			return new Tuple2<MatrixIndexes, ArrayList<MatrixBlock>>(kv._1, retVal);
+			return new Tuple2<>(kv._1, retVal);
 		}
 		
 	}
@@ -459,14 +458,14 @@ public class TernarySPInstruction extends ComputationSPInstruction {
 		@Override
 		public Iterator<Tuple2<MatrixIndexes, Double>> call(CTableMap ctableMap)
 				throws Exception {
-			ArrayList<Tuple2<MatrixIndexes, Double>> retVal = new ArrayList<Tuple2<MatrixIndexes, Double>>();
+			ArrayList<Tuple2<MatrixIndexes, Double>> retVal = new ArrayList<>();
 			Iterator<LLDoubleEntry> iter = ctableMap.getIterator();
 			while( iter.hasNext() ) {
 				LLDoubleEntry ijv = iter.next();
 				long i = ijv.key1;
 				long j =  ijv.key2;
 				double v =  ijv.value;
-				retVal.add(new Tuple2<MatrixIndexes, Double>(new MatrixIndexes(i, j), v));
+				retVal.add(new Tuple2<>(new MatrixIndexes(i, j), v));
 			}
 			return retVal.iterator();
 		}
@@ -482,7 +481,7 @@ public class TernarySPInstruction extends ComputationSPInstruction {
 				Tuple2<MatrixIndexes, Double> kv) throws Exception {
 			
 			MatrixCell cell = new MatrixCell(kv._2().doubleValue());
-			return new Tuple2<MatrixIndexes, MatrixCell>(kv._1(), cell);
+			return new Tuple2<>(kv._1(), cell);
 		}
 		
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/Tsmm2SPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/Tsmm2SPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/Tsmm2SPInstruction.java
index 5147b8f..e52fbdc 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/Tsmm2SPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/Tsmm2SPInstruction.java
@@ -147,14 +147,14 @@ public class Tsmm2SPInstruction extends UnarySPInstruction {
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Tuple2<MatrixIndexes, MatrixBlock> arg0)
 			throws Exception 
 		{
-			List<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			List<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			MatrixIndexes ixin = arg0._1();
 			MatrixBlock mbin = arg0._2();
 			
 			//execute block tsmm operation
 			MatrixBlock out1 = mbin.transposeSelfMatrixMultOperations(new MatrixBlock(), _type);
 			long ixout = _type.isLeft() ? ixin.getColumnIndex() : ixin.getRowIndex();
-			ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(ixout, ixout), out1));
+			ret.add(new Tuple2<>(new MatrixIndexes(ixout, ixout), out1));
 			
 			if( _type.isLeft() ? ixin.getColumnIndex() == 1 : ixin.getRowIndex() == 1 ) {
 				//execute block mapmm operation for full block only (output two blocks, due to symmetry)
@@ -166,11 +166,11 @@ public class Tsmm2SPInstruction extends UnarySPInstruction {
 				MatrixBlock out2 = (MatrixBlock) OperationsOnMatrixValues.performAggregateBinaryIgnoreIndexes( //mm
 						_type.isLeft() ? mbin2t : mbin, _type.isLeft() ? mbin : mbin2t, new MatrixBlock(), _op);
 				MatrixIndexes ixout2 = _type.isLeft() ? new MatrixIndexes(2,1) : new MatrixIndexes(1,2);
-				ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ixout2, out2));
+				ret.add(new Tuple2<>(ixout2, out2));
 				
 				MatrixBlock out3 = transpose(out2, new MatrixBlock()); 
 				MatrixIndexes ixout3 = _type.isLeft() ? new MatrixIndexes(1,2) : new MatrixIndexes(2,1);
-				ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ixout3, out3));
+				ret.add(new Tuple2<>(ixout3, out3));
 			}
 			
 			return ret.iterator();
@@ -254,9 +254,9 @@ public class Tsmm2SPInstruction extends UnarySPInstruction {
 			throws Exception 
 		{
 			if( _type.isLeft() )
-				return new Tuple2<MatrixIndexes,MatrixBlock>(new MatrixIndexes(arg0._1().getRowIndex(), 1), arg0._2());
+				return new Tuple2<>(new MatrixIndexes(arg0._1().getRowIndex(), 1), arg0._2());
 			else
-				return new Tuple2<MatrixIndexes,MatrixBlock>(new MatrixIndexes(1, arg0._1().getColumnIndex()), arg0._2());	
+				return new Tuple2<>(new MatrixIndexes(1, arg0._1().getColumnIndex()), arg0._2());	
 		}
 	}	
 	

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/UaggOuterChainSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/UaggOuterChainSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/UaggOuterChainSPInstruction.java
index 51ea00b..9c7aefc 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/UaggOuterChainSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/UaggOuterChainSPInstruction.java
@@ -265,21 +265,18 @@ public class UaggOuterChainSPInstruction extends BinarySPInstruction {
 			{
 				MatrixIndexes in1Ix = arg._1();
 				MatrixBlock in1Val  = arg._2();
-
 				MatrixIndexes outIx = new MatrixIndexes();
 				MatrixBlock outVal = new MatrixBlock();
 				
 				int [] bvi = null;
 				if((LibMatrixOuterAgg.isRowIndexMax(_uaggOp)) || (LibMatrixOuterAgg.isRowIndexMin(_uaggOp)))
-				{
 					bvi = _bvi.getValue();
-				}
 
 				LibMatrixOuterAgg.resetOutputMatix(in1Ix, in1Val, outIx, outVal, _uaggOp);
 				LibMatrixOuterAgg.aggregateMatrix(in1Val, outVal, _bv.value(), bvi, _bOp, _uaggOp);
 
-				return new Tuple2<MatrixIndexes, MatrixBlock>(outIx, outVal);	
-			}			
+				return new Tuple2<>(outIx, outVal);
+			}
 		}
 	}
 
@@ -366,9 +363,8 @@ public class UaggOuterChainSPInstruction extends BinarySPInstruction {
 					else 
 						OperationsOnMatrixValues.incrementalAggregation(outVal, null, _tmpVal2, _aggOp, true);
 				}
-				
-				return new Tuple2<MatrixIndexes, MatrixBlock>(outIx, outVal);
-			}			
-		}	
+				return new Tuple2<>(outIx, outVal);
+			}
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/WriteSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/WriteSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/WriteSPInstruction.java
index 046abf5..2fb47f9 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/WriteSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/WriteSPInstruction.java
@@ -168,9 +168,9 @@ public class WriteSPInstruction extends SPInstruction {
 				in1 = in1.mapValues(new ComputeBinaryBlockNnzFunction(aNnz));
 			}
 			
-			JavaRDD<String> header = null;				
+			JavaRDD<String> header = null;
 			if( oi == OutputInfo.MatrixMarketOutputInfo  ) {
-				ArrayList<String> headerContainer = new ArrayList<String>(1);
+				ArrayList<String> headerContainer = new ArrayList<>(1);
 				// First output MM header
 				String headerStr = "%%MatrixMarket matrix coordinate real general\n" +
 						// output number of rows, number of columns and number of nnz

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/BroadcastObject.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/BroadcastObject.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/BroadcastObject.java
index bdd34e4..53b9d34 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/BroadcastObject.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/BroadcastObject.java
@@ -32,7 +32,7 @@ public class BroadcastObject<T extends CacheBlock> extends LineageObject
 	
 	public BroadcastObject( PartitionedBroadcast<T> bvar, String varName, long size ) {
 		super(varName);
-		_bcHandle = new SoftReference<PartitionedBroadcast<T>>(bvar);
+		_bcHandle = new SoftReference<>(bvar);
 		_size = size;
 	}
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/LineageObject.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/LineageObject.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/LineageObject.java
index 58629e6..4d6f0c6 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/LineageObject.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/LineageObject.java
@@ -37,7 +37,7 @@ public abstract class LineageObject
 	protected LineageObject(String varName) {
 		_varName = varName;
 		_numRef = 0;
-		_childs = new ArrayList<LineageObject>();
+		_childs = new ArrayList<>();
 	}
 	
 	public String getVarName() {

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java
index 08257f6..ed5167b 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java
@@ -109,7 +109,7 @@ public class PartitionedBlock<T extends CacheBlock> implements Externalizable
 
 	public PartitionedBlock<T> createPartition( int offset, int numBlks, T block )
 	{
-		PartitionedBlock<T> ret = new PartitionedBlock<T>();
+		PartitionedBlock<T> ret = new PartitionedBlock<>();
 		ret._rlen = _rlen;
 		ret._clen = _clen;
 		ret._brlen = _brlen;

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertFrameBlockToIJVLines.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertFrameBlockToIJVLines.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertFrameBlockToIJVLines.java
index cd6e58d..32c86c4 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertFrameBlockToIJVLines.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertFrameBlockToIJVLines.java
@@ -37,8 +37,7 @@ public class ConvertFrameBlockToIJVLines implements FlatMapFunction<Tuple2<Long,
 	{
 		long rowoffset = kv._1;
 		FrameBlock block = kv._2;
-		
-		ArrayList<String> cells = new ArrayList<String>();
+		ArrayList<String> cells = new ArrayList<>();
 		
 		//write frame meta data
 		if( rowoffset == 1 ) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertStringToLongTextPair.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertStringToLongTextPair.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertStringToLongTextPair.java
index d496b27..26dbf5e 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertStringToLongTextPair.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ConvertStringToLongTextPair.java
@@ -30,7 +30,7 @@ public class ConvertStringToLongTextPair implements PairFunction<String, LongWri
 
 	@Override
 	public Tuple2<LongWritable, Text> call(String arg0) throws Exception {
-		return new Tuple2<LongWritable, Text>(new LongWritable(1), new Text(arg0));
+		return new Tuple2<>(new LongWritable(1), new Text(arg0));
 	}
 
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBinaryCellFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBinaryCellFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBinaryCellFunction.java
index b7742cc..957e526 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBinaryCellFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBinaryCellFunction.java
@@ -40,6 +40,6 @@ public class CopyBinaryCellFunction implements PairFunction<Tuple2<MatrixIndexes
 		MatrixIndexes ix = new MatrixIndexes(arg0._1());
 		MatrixCell cell = new MatrixCell();
 		cell.copy(arg0._2());
-		return new Tuple2<MatrixIndexes,MatrixCell>(ix,cell);
+		return new Tuple2<>(ix,cell);
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBlockPairFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBlockPairFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBlockPairFunction.java
index 42d4843..5423a8f 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBlockPairFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyBlockPairFunction.java
@@ -76,7 +76,7 @@ public class CopyBlockPairFunction implements PairFlatMapFunction<Iterator<Tuple
 					block = new MatrixBlock(arg._2, SparseBlock.Type.CSR, true);
 				else
 					block = new MatrixBlock(arg._2());
-				return new Tuple2<MatrixIndexes,MatrixBlock>(ix,block);
+				return new Tuple2<>(ix,block);
 			}
 			else {
 				return arg;

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyFrameBlockPairFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyFrameBlockPairFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyFrameBlockPairFunction.java
index df891f7..81d6739 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyFrameBlockPairFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyFrameBlockPairFunction.java
@@ -51,10 +51,10 @@ public class CopyFrameBlockPairFunction implements PairFunction<Tuple2<LongWrita
 	{	
 		if( _deepCopy ) {
 			FrameBlock block = new FrameBlock(arg0._2());
-			return new Tuple2<Long,FrameBlock>(arg0._1().get(), block);
+			return new Tuple2<>(arg0._1().get(), block);
 		}
 		else {
-			return new Tuple2<Long,FrameBlock>(arg0._1().get(), arg0._2());
+			return new Tuple2<>(arg0._1().get(), arg0._2());
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyTextInputFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyTextInputFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyTextInputFunction.java
index 3a2c38d..bb01ca6 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyTextInputFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/CopyTextInputFunction.java
@@ -38,6 +38,6 @@ public class CopyTextInputFunction implements PairFunction<Tuple2<LongWritable,
 		Tuple2<LongWritable, Text> arg0) throws Exception {
 		LongWritable lw = new LongWritable(arg0._1().get());
 		Text txt = new Text(arg0._2());
-		return new Tuple2<LongWritable,Text>(lw, txt);
+		return new Tuple2<>(lw, txt);
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractBlockForBinaryReblock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractBlockForBinaryReblock.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractBlockForBinaryReblock.java
index 61b4385..e6042ed 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractBlockForBinaryReblock.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractBlockForBinaryReblock.java
@@ -80,7 +80,7 @@ public class ExtractBlockForBinaryReblock implements PairFlatMapFunction<Tuple2<
 		long out_endColBlockIndex = UtilFunctions.computeBlockIndex(endColGlobalCellIndex, out_bclen);
 		assert(out_startRowBlockIndex <= out_endRowBlockIndex && out_startColBlockIndex <= out_endColBlockIndex);
 		
-		ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> retVal = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+		ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> retVal = new ArrayList<>();
 		
 		for(long i = out_startRowBlockIndex; i <= out_endRowBlockIndex; i++) {
 			for(long j = out_startColBlockIndex; j <= out_endColBlockIndex; j++) {
@@ -105,7 +105,7 @@ public class ExtractBlockForBinaryReblock implements PairFlatMapFunction<Tuple2<
 						blk.appendValue(out_i1, out_j1, val);
 					}
 				}
-				retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(indx, blk));
+				retVal.add(new Tuple2<>(indx, blk));
 			}
 		}
 		return retVal.iterator();

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroup.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroup.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroup.java
index 56c1c46..3e6908b 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroup.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroup.java
@@ -58,7 +58,7 @@ public abstract class ExtractGroup implements Serializable
 		}
 		
 		//output weighted cells
-		ArrayList<Tuple2<MatrixIndexes, WeightedCell>> groupValuePairs = new ArrayList<Tuple2<MatrixIndexes, WeightedCell>>();
+		ArrayList<Tuple2<MatrixIndexes, WeightedCell>> groupValuePairs = new ArrayList<>();
 		long coloff = (ix.getColumnIndex()-1)*_bclen;
 		
 		//local pre-aggregation for sum w/ known output dimensions
@@ -75,7 +75,7 @@ public abstract class ExtractGroup implements Serializable
 						weightedCell.setValue(tmpval);
 						weightedCell.setWeight(1);
 						MatrixIndexes ixout = new MatrixIndexes(i+1,coloff+j+1);
-						groupValuePairs.add(new Tuple2<MatrixIndexes, WeightedCell>(ixout, weightedCell));
+						groupValuePairs.add(new Tuple2<>(ixout, weightedCell));
 					}
 				}
 			}
@@ -93,7 +93,7 @@ public abstract class ExtractGroup implements Serializable
 					weightedCell.setValue(target.quickGetValue(i, j));
 					weightedCell.setWeight(1);
 					MatrixIndexes ixout = new MatrixIndexes(groupVal,coloff+j+1);
-					groupValuePairs.add(new Tuple2<MatrixIndexes, WeightedCell>(ixout, weightedCell));
+					groupValuePairs.add(new Tuple2<>(ixout, weightedCell));
 				}
 			}
 		}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroupNWeights.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroupNWeights.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroupNWeights.java
index d040dbc..c3900a5 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroupNWeights.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ExtractGroupNWeights.java
@@ -50,7 +50,7 @@ public class ExtractGroupNWeights implements PairFlatMapFunction<Tuple2<MatrixIn
 		}
 		
 		//output weighted cells		
-		ArrayList<Tuple2<MatrixIndexes, WeightedCell>> groupValuePairs = new ArrayList<Tuple2<MatrixIndexes, WeightedCell>>();
+		ArrayList<Tuple2<MatrixIndexes, WeightedCell>> groupValuePairs = new ArrayList<>();
 		for(int i = 0; i < group.getNumRows(); i++) {
 			WeightedCell weightedCell = new WeightedCell();
 			weightedCell.setValue(target.quickGetValue(i, 0));
@@ -60,7 +60,7 @@ public class ExtractGroupNWeights implements PairFlatMapFunction<Tuple2<MatrixIn
 				throw new Exception("Expected group values to be greater than equal to 1 but found " + groupVal);
 			}
 			MatrixIndexes ix = new MatrixIndexes(groupVal, 1);
-			groupValuePairs.add(new Tuple2<MatrixIndexes, WeightedCell>(ix, weightedCell));
+			groupValuePairs.add(new Tuple2<>(ix, weightedCell));
 		}
 		
 		return groupValuePairs.iterator();

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/GetMIMBFromRow.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/GetMIMBFromRow.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/GetMIMBFromRow.java
index 6197b75..430af80 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/GetMIMBFromRow.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/GetMIMBFromRow.java
@@ -33,14 +33,9 @@ public class GetMIMBFromRow implements PairFunction<Row, MatrixIndexes, MatrixBl
 
 	@Override	
 	public Tuple2<MatrixIndexes, MatrixBlock> call(Row row) throws Exception {
-//		try {
 			MatrixIndexes indx = (MatrixIndexes) row.apply(0);
 			MatrixBlock blk = (MatrixBlock) row.apply(1);
-			return new Tuple2<MatrixIndexes, MatrixBlock>(indx, blk);
-//		}
-//		catch(Exception e) {
-//			throw new Exception("Incorrect type of DataFrame passed to MLMatrix:" + e.getMessage());
-//		}
+			return new Tuple2<>(indx, blk);
 	}
 
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/MatrixVectorBinaryOpPartitionFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/MatrixVectorBinaryOpPartitionFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/MatrixVectorBinaryOpPartitionFunction.java
index 70f3318..afd2e1a 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/MatrixVectorBinaryOpPartitionFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/MatrixVectorBinaryOpPartitionFunction.java
@@ -80,7 +80,7 @@ public class MatrixVectorBinaryOpPartitionFunction implements PairFlatMapFunctio
 				
 			//execute the binary operation
 			MatrixBlock ret = (MatrixBlock) (in1.binaryOperations (_op, in2, new MatrixBlock()));
-			return new Tuple2<MatrixIndexes, MatrixBlock>(ix, ret);	
+			return new Tuple2<>(ix, ret);	
 		}			
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/OuterVectorBinaryOpFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/OuterVectorBinaryOpFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/OuterVectorBinaryOpFunction.java
index ddb77e8..3a2cd15 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/OuterVectorBinaryOpFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/OuterVectorBinaryOpFunction.java
@@ -84,8 +84,7 @@ public class OuterVectorBinaryOpFunction implements PairFlatMapFunction<Tuple2<M
 				MatrixBlock in2 = _pmV.getBlock(1, _currPos);
 				MatrixBlock resultBlk = (MatrixBlock)in1.binaryOperations (_op, in2, new MatrixBlock());
 				resultBlk.examSparsity(); 
-				ret = new Tuple2<MatrixIndexes,MatrixBlock>(
-						new MatrixIndexes(ix.getRowIndex(), _currPos), resultBlk);
+				ret = new Tuple2<>(new MatrixIndexes(ix.getRowIndex(), _currPos), resultBlk);
 				_currPos ++;
 			}
 			catch(Exception ex) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReorgMapFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReorgMapFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReorgMapFunction.java
index 79b9460..111e3b9 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReorgMapFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReorgMapFunction.java
@@ -60,16 +60,13 @@ public class ReorgMapFunction implements PairFunction<Tuple2<MatrixIndexes, Matr
 	{
 		MatrixIndexes ixIn = arg0._1();
 		MatrixBlock blkIn = arg0._2();
-
 		//swap the matrix indexes
 		MatrixIndexes ixOut = new MatrixIndexes(ixIn);
 		_indexFnObject.execute(ixIn, ixOut);
-		
 		//swap the matrix block data
 		MatrixBlock blkOut = (MatrixBlock) blkIn.reorgOperations(_reorgOp, new MatrixBlock(), -1, -1, -1);
-		
 		//output new tuple
-		return new Tuple2<MatrixIndexes, MatrixBlock>(ixOut,blkOut);
+		return new Tuple2<>(ixOut,blkOut);
 	}
 	
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateBlockFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateBlockFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateBlockFunction.java
index 22ea33f..00f67cf 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateBlockFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateBlockFunction.java
@@ -19,8 +19,8 @@
 
 package org.apache.sysml.runtime.instructions.spark.functions;
 
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 
 import org.apache.spark.api.java.function.PairFlatMapFunction;
 import org.apache.sysml.runtime.matrix.data.MatrixBlock;
@@ -53,7 +53,7 @@ public class ReplicateBlockFunction implements PairFlatMapFunction<Tuple2<Matrix
 	public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call( Tuple2<MatrixIndexes, MatrixBlock> arg0 ) 
 		throws Exception 
 	{
-		LinkedList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new LinkedList<Tuple2<MatrixIndexes, MatrixBlock>>();
+		ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<>();
 		MatrixIndexes ixIn = arg0._1();
 		MatrixBlock blkIn = arg0._2();
 		
@@ -66,7 +66,7 @@ public class ReplicateBlockFunction implements PairFlatMapFunction<Tuple2<Matrix
 			for( long j=1; j<=numBlocks; j++ ) {
 				MatrixIndexes tmpix = new MatrixIndexes(i, j);
 				MatrixBlock tmpblk = _deep ? new MatrixBlock(blkIn) : blkIn;
-				ret.add( new Tuple2<MatrixIndexes, MatrixBlock>(tmpix, tmpblk) );
+				ret.add( new Tuple2<>(tmpix, tmpblk) );
 			}
 		} 
 		else // RHS MATRIX
@@ -76,7 +76,7 @@ public class ReplicateBlockFunction implements PairFlatMapFunction<Tuple2<Matrix
 			for( long i=1; i<=numBlocks; i++ ) {
 				MatrixIndexes tmpix = new MatrixIndexes(i, j);
 				MatrixBlock tmpblk = _deep ? new MatrixBlock(blkIn) : blkIn;
-				ret.add( new Tuple2<MatrixIndexes, MatrixBlock>(tmpix, tmpblk) );
+				ret.add( new Tuple2<>(tmpix, tmpblk) );
 			}
 		}
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateVectorFunction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateVectorFunction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateVectorFunction.java
index 8c6eb92..a0d1770 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateVectorFunction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/functions/ReplicateVectorFunction.java
@@ -59,14 +59,13 @@ public class ReplicateVectorFunction implements PairFlatMapFunction<Tuple2<Matri
 			throw new Exception("Expected a column vector in ReplicateVector");
 		}
 		
-		ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> retVal = new ArrayList<Tuple2<MatrixIndexes, MatrixBlock>>();
+		ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> retVal = new ArrayList<>();
 		for(int i = 1; i <= _numReplicas; i++) {
 			if( _byRow )
-				retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(i, ix.getColumnIndex()), mb));
+				retVal.add(new Tuple2<>(new MatrixIndexes(i, ix.getColumnIndex()), mb));
 			else
-				retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(ix.getRowIndex(), i), mb));
+				retVal.add(new Tuple2<>(new MatrixIndexes(ix.getRowIndex(), i), mb));
 		}
-		
 		return retVal.iterator();
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java
index 4e836eb..055b33b 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java
@@ -305,7 +305,7 @@ public class FrameRDDConverterUtils
 	public static StructType convertFrameSchemaToDFSchema(ValueType[] fschema, boolean containsID)
 	{
 		// generate the schema based on the string of schema
-		List<StructField> fields = new ArrayList<StructField>();
+		List<StructField> fields = new ArrayList<>();
 		
 		// add id column type
 		if( containsID )
@@ -474,9 +474,8 @@ public class FrameRDDConverterUtils
 			while( max >= 0 && arg0.hasNext() ) {
 				long val = arg0.next();
 				max = (val < max) ? -1 : val;
-			}			
-			
-			ArrayList<Long> ret = new ArrayList<Long>();	
+			}
+			ArrayList<Long> ret = new ArrayList<>();
 			ret.add(max);
 			return ret.iterator();
 		}
@@ -492,7 +491,7 @@ public class FrameRDDConverterUtils
 
 		@Override
 		public Tuple2<LongWritable, Text> call(String arg0) throws Exception {
-			return new Tuple2<LongWritable,Text>(new SerLongWritable(1L), new SerText(arg0));
+			return new Tuple2<>(new SerLongWritable(1L), new SerText(arg0));
 		}
 	}
 
@@ -502,7 +501,7 @@ public class FrameRDDConverterUtils
 		
 		@Override
 		public Tuple2<LongWritable, FrameBlock> call(Tuple2<LongWritable, FrameBlock> arg0) throws Exception  {
-			return new Tuple2<LongWritable,FrameBlock>(new SerLongWritable(arg0._1.get()), arg0._2);
+			return new Tuple2<>(new SerLongWritable(arg0._1.get()), arg0._2);
 		}
 	}
 
@@ -512,7 +511,7 @@ public class FrameRDDConverterUtils
 
 		@Override
 		public Tuple2<Long, Text> call(Tuple2<LongWritable, Text> arg0) throws Exception  {
-			return new Tuple2<Long,Text>(new Long(arg0._1.get()), arg0._2);
+			return new Tuple2<>(new Long(arg0._1.get()), arg0._2);
 		}
 	}
 
@@ -522,7 +521,7 @@ public class FrameRDDConverterUtils
 
 		@Override
 		public Tuple2<LongWritable, FrameBlock> call(Tuple2<Long, FrameBlock> arg0) throws Exception  {
-			return new Tuple2<LongWritable, FrameBlock>(new LongWritable(arg0._1), arg0._2);
+			return new Tuple2<>(new LongWritable(arg0._1), arg0._2);
 		}
 	}
 
@@ -532,7 +531,7 @@ public class FrameRDDConverterUtils
 
 		@Override
 		public Tuple2<Long, FrameBlock> call(Tuple2<LongWritable, FrameBlock> arg0) throws Exception  {
-			return new Tuple2<Long, FrameBlock>(arg0._1.get(), arg0._2);
+			return new Tuple2<>(arg0._1.get(), arg0._2);
 		}
 	}
 
@@ -579,7 +578,7 @@ public class FrameRDDConverterUtils
 		public Iterator<Tuple2<Long, FrameBlock>> call(Iterator<Tuple2<Text,Long>> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<Long,FrameBlock>> ret = new ArrayList<Tuple2<Long,FrameBlock>>();
+			ArrayList<Tuple2<Long,FrameBlock>> ret = new ArrayList<>();
 
 			long ix = -1;
 			FrameBlock fb = null;
@@ -651,7 +650,7 @@ public class FrameRDDConverterUtils
 			throws DMLRuntimeException
 		{			
 			if( fb != null && fb.getNumRows()>0 )
-				ret.add(new Tuple2<Long,FrameBlock>(ix, fb));
+				ret.add(new Tuple2<>(ix, fb));
 		}
 	}
 
@@ -672,7 +671,7 @@ public class FrameRDDConverterUtils
 			Long ix = arg0._1();
 			FrameBlock blk = arg0._2();
 			
-			ArrayList<String> ret = new ArrayList<String>();
+			ArrayList<String> ret = new ArrayList<>();
 			StringBuilder sb = new StringBuilder();
 			
 			//handle header information and frame meta data
@@ -745,7 +744,7 @@ public class FrameRDDConverterUtils
 		public Iterator<Tuple2<Long, FrameBlock>> call(Iterator<Tuple2<Row, Long>> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<Long,FrameBlock>> ret = new ArrayList<Tuple2<Long,FrameBlock>>();
+			ArrayList<Tuple2<Long,FrameBlock>> ret = new ArrayList<>();
 
 			long ix = -1;
 			FrameBlock fb = null;
@@ -791,7 +790,7 @@ public class FrameRDDConverterUtils
 			throws DMLRuntimeException
 		{			
 			if( fb != null && fb.getNumRows()>0 )
-				ret.add(new Tuple2<Long,FrameBlock>(ix, fb));
+				ret.add(new Tuple2<>(ix, fb));
 		}
 	}
 
@@ -805,7 +804,7 @@ public class FrameRDDConverterUtils
 		{
 			long rowIndex = arg0._1();
 			FrameBlock blk = arg0._2();
-			ArrayList<Row> ret = new ArrayList<Row>();
+			ArrayList<Row> ret = new ArrayList<>();
 
 			//handle Frame block data
 			int rows = blk.getNumRows();
@@ -846,7 +845,7 @@ public class FrameRDDConverterUtils
 			throws IOException, DMLRuntimeException
 		{
 			//temporary list of indexed matrix values to prevent library dependencies
-			ArrayList<Pair<Long, FrameBlock>> rettmp = new ArrayList<Pair<Long, FrameBlock>>();
+			ArrayList<Pair<Long, FrameBlock>> rettmp = new ArrayList<>();
 			rbuff.flushBufferToBinaryBlocks(rettmp);
 			ret.addAll(SparkUtils.fromIndexedFrameBlock(rettmp));
 		}
@@ -866,7 +865,7 @@ public class FrameRDDConverterUtils
 		public Iterator<Tuple2<Long, FrameBlock>> call(Iterator<Text> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<Long,FrameBlock>> ret = new ArrayList<Tuple2<Long,FrameBlock>>();
+			ArrayList<Tuple2<Long,FrameBlock>> ret = new ArrayList<>();
 			FrameReblockBuffer rbuff = new FrameReblockBuffer(_bufflen, _rlen, _clen, _schema );
 			FastStringTokenizer st = new FastStringTokenizer(' ');
 			
@@ -922,7 +921,7 @@ public class FrameRDDConverterUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Tuple2<MatrixIndexes,MatrixBlock> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			MatrixIndexes ix = arg0._1();
 			MatrixBlock mb = arg0._2();
 			MatrixBlock mbreuse = new MatrixBlock();
@@ -944,7 +943,7 @@ public class FrameRDDConverterUtils
 				out.copy(0, out.getNumRows()-1, (int)cl, (int)cu, 
 					mb.sliceOperations(i, ru, 0, mb.getNumColumns()-1, mbreuse), true);
 				out.examSparsity();
-				ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(ixout,out));				
+				ret.add(new Tuple2<>(ixout,out));
 			}
 
 			return ret.iterator();
@@ -982,7 +981,7 @@ public class FrameRDDConverterUtils
 			throws Exception 
 		{
 			FrameBlock fb = DataConverter.convertToFrameBlock(arg0._2());
-			return  new Tuple2<Long, FrameBlock>(
+			return  new Tuple2<>(
 				(arg0._1().getRowIndex()-1)*_brlen+1, fb);
 		}
 	}
@@ -994,7 +993,7 @@ public class FrameRDDConverterUtils
 		private MatrixCharacteristics _mcIn;
 		private MatrixCharacteristics _mcOut;
 
-		public BinaryBlockToMatrixBlockFunction(MatrixCharacteristics mcIn, MatrixCharacteristics mcOut) {			
+		public BinaryBlockToMatrixBlockFunction(MatrixCharacteristics mcIn, MatrixCharacteristics mcOut) {
 			_mcIn = mcIn;		//Frame Characteristics
 			_mcOut = mcOut;		//Matrix Characteristics
 		}
@@ -1006,7 +1005,7 @@ public class FrameRDDConverterUtils
 			long rowIndex = arg0._1();
 			FrameBlock blk = arg0._2();
 			
-			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes, MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<>();
 			long rlen = _mcIn.getRows();
 			long clen = _mcIn.getCols();
 			int brlen = _mcOut.getRowsPerBlock();
@@ -1030,7 +1029,7 @@ public class FrameRDDConverterUtils
 					FrameBlock frame = blk.sliceOperations(fix, fix2, 
 							(int)cpos-1, (int)cpos+lclen-2, new FrameBlock());
 					MatrixBlock mframe = DataConverter.convertToMatrixBlock(frame);
-					ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(rix, cix), 
+					ret.add(new Tuple2<>(new MatrixIndexes(rix, cix), 
 							matrix.leftIndexingOperations(mframe, mix, mix2, 0, lclen-1, 
 							new MatrixBlock(), UpdateType.INPLACE_PINNED)));
 				}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java
index 8ec02cc..b5ce814 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java
@@ -281,7 +281,7 @@ public class RDDConverterUtils
 			.groupByKey().map(new ConvertRowBlocksToRows((int)mc.getCols(), mc.getColsPerBlock(), toVector));
 		
 		//create data frame schema
-		List<StructField> fields = new ArrayList<StructField>();
+		List<StructField> fields = new ArrayList<>();
 		fields.add(DataTypes.createStructField(DF_ID_COLUMN, DataTypes.DoubleType, false));
 		if( toVector )
 			fields.add(DataTypes.createStructField("C1", new VectorUDT(), false));
@@ -441,7 +441,7 @@ public class RDDConverterUtils
 		public Iterator<LabeledPoint> call(MatrixBlock arg0) 
 			throws Exception 
 		{
-			ArrayList<LabeledPoint> ret = new ArrayList<LabeledPoint>();
+			ArrayList<LabeledPoint> ret = new ArrayList<>();
 			for( int i=0; i<arg0.getNumRows(); i++ ) {
 				MatrixBlock tmp = arg0.sliceOperations(i, i, 0, arg0.getNumColumns()-2, new MatrixBlock());
 				ret.add(new LabeledPoint(arg0.getValue(i, arg0.getNumColumns()-1), createVector(tmp)));
@@ -482,7 +482,7 @@ public class RDDConverterUtils
 			throws IOException, DMLRuntimeException
 		{
 			//temporary list of indexed matrix values to prevent library dependencies
-			ArrayList<IndexedMatrixValue> rettmp = new ArrayList<IndexedMatrixValue>();					
+			ArrayList<IndexedMatrixValue> rettmp = new ArrayList<>();
 			rbuff.flushBufferToBinaryBlocks(rettmp);
 			ret.addAll(SparkUtils.fromIndexedMatrixBlock(rettmp));
 		}
@@ -500,7 +500,7 @@ public class RDDConverterUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Text> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			ReblockBuffer rbuff = new ReblockBuffer(_bufflen, _rlen, _clen, _brlen, _bclen);
 			FastStringTokenizer st = new FastStringTokenizer(' ');
 			
@@ -541,8 +541,8 @@ public class RDDConverterUtils
 			throws Exception 
 		{
 			SerLongWritable slarg = new SerLongWritable(arg0._1());
-			SerText starg = new SerText(arg0._2());			
-			return new Tuple2<LongWritable,Text>(slarg, starg);
+			SerText starg = new SerText(arg0._2());	
+			return new Tuple2<>(slarg, starg);
 		}
 	}
 
@@ -555,8 +555,8 @@ public class RDDConverterUtils
 			throws Exception 
 		{
 			SerLongWritable slarg = new SerLongWritable(1L);
-			SerText starg = new SerText(arg0);			
-			return new Tuple2<LongWritable,Text>(slarg, starg);
+			SerText starg = new SerText(arg0);
+			return new Tuple2<>(slarg, starg);
 		}
 	}
 	
@@ -575,7 +575,7 @@ public class RDDConverterUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Tuple2<MatrixIndexes,MatrixCell>> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			ReblockBuffer rbuff = new ReblockBuffer(_bufflen, _rlen, _clen, _brlen, _bclen);
 			
 			while( arg0.hasNext() )
@@ -679,7 +679,7 @@ public class RDDConverterUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Tuple2<Text,Long>> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 
 			int ncblks = (int)Math.ceil((double)_clen/_bclen);
 			MatrixIndexes[] ix = new MatrixIndexes[ncblks];
@@ -759,7 +759,7 @@ public class RDDConverterUtils
 			int len = ix.length;			
 			for( int i=0; i<len; i++ )
 				if( mb[i] != null ) {
-					ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix[i],mb[i]));
+					ret.add(new Tuple2<>(ix[i],mb[i]));
 					mb[i].examSparsity(); //ensure right representation
 				}	
 		}
@@ -792,7 +792,7 @@ public class RDDConverterUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Tuple2<org.apache.spark.mllib.regression.LabeledPoint,Long>> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 
 			int ncblks = (int)Math.ceil((double)_clen/_bclen);
 			MatrixIndexes[] ix = new MatrixIndexes[ncblks];
@@ -873,10 +873,10 @@ public class RDDConverterUtils
 		private static void flushBlocksToList( MatrixIndexes[] ix, MatrixBlock[] mb, ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret ) 
 			throws DMLRuntimeException
 		{
-			int len = ix.length;			
+			int len = ix.length;
 			for( int i=0; i<len; i++ )
 				if( mb[i] != null ) {
-					ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix[i],mb[i]));
+					ret.add(new Tuple2<>(ix[i],mb[i]));
 					mb[i].examSparsity(); //ensure right representation
 				}	
 		}
@@ -899,7 +899,7 @@ public class RDDConverterUtils
 			MatrixIndexes ix = arg0._1();
 			MatrixBlock blk = arg0._2();
 			
-			ArrayList<String> ret = new ArrayList<String>();
+			ArrayList<String> ret = new ArrayList<>();
 			
 			//handle header information
 			if(_props.hasHeader() && ix.getRowIndex()==1 ) {
@@ -944,19 +944,14 @@ public class RDDConverterUtils
 		public Iterator<Tuple2<Long,Tuple2<Long,MatrixBlock>>> call(Tuple2<MatrixIndexes, MatrixBlock> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<Long,Tuple2<Long,MatrixBlock>>> ret = 
-					new ArrayList<Tuple2<Long,Tuple2<Long,MatrixBlock>>>();
-			
+			ArrayList<Tuple2<Long,Tuple2<Long,MatrixBlock>>> ret = new ArrayList<>();
 			MatrixIndexes ix = arg0._1();
 			MatrixBlock blk = arg0._2();
-			
 			for( int i=0; i<blk.getNumRows(); i++ ) {
 				MatrixBlock tmpBlk = blk.sliceOperations(i, i, 0, blk.getNumColumns()-1, new MatrixBlock());
 				long rix = UtilFunctions.computeCellIndex(ix.getRowIndex(), _brlen, i);
-				ret.add(new Tuple2<Long,Tuple2<Long,MatrixBlock>>(rix, 
-						new Tuple2<Long,MatrixBlock>(ix.getColumnIndex(),tmpBlk)));
+				ret.add(new Tuple2<>(rix, new Tuple2<>(ix.getColumnIndex(),tmpBlk)));
 			}
-			
 			return ret.iterator();
 		}
 		
@@ -982,24 +977,20 @@ public class RDDConverterUtils
 		{
 			long rowIndex = arg0._1();
 			MatrixBlock[] tmpBlks = new MatrixBlock[_ncblks];
-			
 			//collect and sort input blocks
 			Iterator<Tuple2<Long, MatrixBlock>> iter = arg0._2().iterator();
 			while( iter.hasNext() ) {
 				Tuple2<Long, MatrixBlock> entry = iter.next();
 				tmpBlks[entry._1().intValue()-1] = entry._2();
 			}
-		
 			//concatenate blocks
 			MatrixBlock out = new MatrixBlock(1,(int)_clen, tmpBlks[0].isInSparseFormat());
-			for( int i=0; i<_ncblks; i++ ) {				
-				out.copy(0, 0, i*_bclen, (int)Math.min((i+1)*_bclen, _clen)-1, tmpBlks[i], false);				
-			}
+			for( int i=0; i<_ncblks; i++ )
+				out.copy(0, 0, i*_bclen, (int)Math.min((i+1)*_bclen, _clen)-1, tmpBlks[i], false);
 			out.recomputeNonZeros();
-			
 			//output row block
-			return new Tuple2<MatrixIndexes,MatrixBlock>(new MatrixIndexes(rowIndex, 1),out);
-		}		
+			return new Tuple2<>(new MatrixIndexes(rowIndex, 1),out);
+		}
 	}
 
 	/////////////////////////////////
@@ -1033,7 +1024,7 @@ public class RDDConverterUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Tuple2<Row, Long>> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			
 			int ncblks = (int)Math.ceil((double)_clen/_bclen);
 			MatrixIndexes[] ix = new MatrixIndexes[ncblks];
@@ -1059,7 +1050,7 @@ public class RDDConverterUtils
 				int off = _containsID ? 1: 0;
 				Object obj = _isVector ? tmp._1().get(off) : tmp._1();
 				for( int cix=1, pix=_isVector?0:off; cix<=ncblks; cix++ ) {
-					int lclen = (int)UtilFunctions.computeBlockSize(_clen, cix, _bclen);				
+					int lclen = (int)UtilFunctions.computeBlockSize(_clen, cix, _bclen);
 					//allocate sparse row once (avoid re-allocations)
 					if( mb[cix-1].isInSparseFormat() ) {
 						int lnnz = countNnz(obj, _isVector, pix, lclen);
@@ -1118,7 +1109,7 @@ public class RDDConverterUtils
 			int len = ix.length;			
 			for( int i=0; i<len; i++ )
 				if( mb[i] != null ) {
-					ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix[i],mb[i]));
+					ret.add(new Tuple2<>(ix[i],mb[i]));
 					mb[i].examSparsity(); //ensure right representation
 				}	
 		}
@@ -1169,7 +1160,7 @@ public class RDDConverterUtils
 				throw new DMLRuntimeException("ID Column '" + DF_ID_COLUMN 
 						+ "' expected to be 1-based, but found value: "+id);
 			}
-			return new Tuple2<Row,Long>(arg0, id-1);
+			return new Tuple2<>(arg0, id-1);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java
index 046c015..2fddce3 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java
@@ -182,10 +182,10 @@ public class RDDSortUtils
 		//flip sort indices from <source ix in target pos> to <target ix in source pos>
 		MatrixBlock sortedIxSrc = new MatrixBlock(sortedIx.getNumRows(), 1, false); 
 		for (int i=0; i < sortedIx.getNumRows(); i++) 
-			sortedIxSrc.quickSetValue((int)sortedIx.quickGetValue(i,0)-1, 0, i+1);			
+			sortedIxSrc.quickSetValue((int)sortedIx.quickGetValue(i,0)-1, 0, i+1);
 
 		//broadcast index vector
-		PartitionedBlock<MatrixBlock> pmb = new PartitionedBlock<MatrixBlock>(sortedIxSrc, brlen, bclen);		
+		PartitionedBlock<MatrixBlock> pmb = new PartitionedBlock<>(sortedIxSrc, brlen, bclen);
 		Broadcast<PartitionedBlock<MatrixBlock>> _pmb = sec.getSparkContext().broadcast(pmb);	
 
 		//sort data with broadcast index vector
@@ -214,7 +214,7 @@ public class RDDSortUtils
 		public Iterator<DoublePair> call(Tuple2<MatrixBlock,MatrixBlock> arg0) 
 			throws Exception 
 		{
-			ArrayList<DoublePair> ret = new ArrayList<DoublePair>(); 
+			ArrayList<DoublePair> ret = new ArrayList<>(); 
 			MatrixBlock mb1 = arg0._1();
 			MatrixBlock mb2 = arg0._2();
 			
@@ -243,19 +243,18 @@ public class RDDSortUtils
 		public Iterator<Tuple2<ValueIndexPair,Double>> call(Tuple2<MatrixIndexes,MatrixBlock> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<ValueIndexPair,Double>> ret = new ArrayList<Tuple2<ValueIndexPair,Double>>(); 
+			ArrayList<Tuple2<ValueIndexPair,Double>> ret = new ArrayList<>(); 
 			MatrixIndexes ix = arg0._1();
 			MatrixBlock mb = arg0._2();
 			
 			long ixoffset = (ix.getRowIndex()-1)*_brlen;
 			for( int i=0; i<mb.getNumRows(); i++) {
 				double val = mb.quickGetValue(i, 0);
-				ret.add(new Tuple2<ValueIndexPair,Double>(
-						new ValueIndexPair(val,ixoffset+i+1), val));
+				ret.add(new Tuple2<>(new ValueIndexPair(val,ixoffset+i+1), val));
 			}
 			
 			return ret.iterator();
-		}		
+		}
 	}
 
 	private static class CreateDoubleKeyFunction implements Function<Double,Double> 
@@ -290,7 +289,7 @@ public class RDDSortUtils
 		public Tuple2<Long, Long> call(Tuple2<ValueIndexPair,Long> arg0)
 				throws Exception 
 		{
-			return new Tuple2<Long,Long>(arg0._1().ix, arg0._2());
+			return new Tuple2<>(arg0._1().ix, arg0._2());
 		}
 
 	}
@@ -311,8 +310,7 @@ public class RDDSortUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Tuple2<Double,Long>> arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
-			
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			MatrixIndexes ix = null;
 			MatrixBlock mb = null;
 			
@@ -326,7 +324,7 @@ public class RDDSortUtils
 				if( ix == null || ix.getRowIndex() != rix )
 				{
 					if( ix !=null )
-						ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix,mb));
+						ret.add(new Tuple2<>(ix,mb));
 					long len = UtilFunctions.computeBlockSize(_rlen, rix, _brlen);
 					ix = new MatrixIndexes(rix,1);
 					mb = new MatrixBlock((int)len, 1, false);	
@@ -337,8 +335,7 @@ public class RDDSortUtils
 			
 			//flush last block
 			if( mb!=null && mb.getNonZeros() != 0 )
-				ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix,mb));
-			
+				ret.add(new Tuple2<>(ix,mb));
 			return ret.iterator();
 		}
 	}
@@ -359,7 +356,7 @@ public class RDDSortUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Tuple2<DoublePair,Long>> arg0) 
 			throws Exception
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			
 			MatrixIndexes ix = null;
 			MatrixBlock mb = null;
@@ -374,10 +371,10 @@ public class RDDSortUtils
 				if( ix == null || ix.getRowIndex() != rix )
 				{
 					if( ix !=null )
-						ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix,mb));
+						ret.add(new Tuple2<>(ix,mb));
 					long len = UtilFunctions.computeBlockSize(_rlen, rix, _brlen);
 					ix = new MatrixIndexes(rix,1);
-					mb = new MatrixBlock((int)len, 2, false);	
+					mb = new MatrixBlock((int)len, 2, false);
 				}
 				
 				mb.quickSetValue(pos, 0, val._1.val1);
@@ -386,7 +383,7 @@ public class RDDSortUtils
 			
 			//flush last block
 			if( mb!=null && mb.getNonZeros() != 0 )
-				ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix,mb));
+				ret.add(new Tuple2<>(ix,mb));
 			
 			return ret.iterator();
 		}
@@ -408,7 +405,7 @@ public class RDDSortUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Tuple2<ValueIndexPair,Long>> arg0) 
 			throws Exception
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			
 			MatrixIndexes ix = null;
 			MatrixBlock mb = null;
@@ -423,7 +420,7 @@ public class RDDSortUtils
 				if( ix == null || ix.getRowIndex() != rix )
 				{
 					if( ix !=null )
-						ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix,mb));
+						ret.add(new Tuple2<>(ix,mb));
 					long len = UtilFunctions.computeBlockSize(_rlen, rix, _brlen);
 					ix = new MatrixIndexes(rix,1);
 					mb = new MatrixBlock((int)len, 1, false);	
@@ -434,7 +431,7 @@ public class RDDSortUtils
 			
 			//flush last block
 			if( mb!=null && mb.getNonZeros() != 0 )
-				ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix,mb));
+				ret.add(new Tuple2<>(ix,mb));
 			
 			return ret.iterator();
 		}
@@ -456,7 +453,7 @@ public class RDDSortUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Iterator<Tuple2<Long,Long>> arg0) 
 			throws Exception
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 			
 			MatrixIndexes ix = null;
 			MatrixBlock mb = null;
@@ -471,7 +468,7 @@ public class RDDSortUtils
 				if( ix == null || ix.getRowIndex() != rix )
 				{
 					if( ix !=null )
-						ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix,mb));
+						ret.add(new Tuple2<>(ix,mb));
 					long len = UtilFunctions.computeBlockSize(_rlen, rix, _brlen);
 					ix = new MatrixIndexes(rix,1);
 					mb = new MatrixBlock((int)len, 1, false);	
@@ -482,7 +479,7 @@ public class RDDSortUtils
 			
 			//flush last block
 			if( mb!=null && mb.getNonZeros() != 0 )
-				ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(ix,mb));
+				ret.add(new Tuple2<>(ix,mb));
 			
 			return ret.iterator();
 		}
@@ -560,7 +557,7 @@ public class RDDSortUtils
 						_currBlk = null;
 					}
 					
-					return new Tuple2<MatrixIndexes,RowMatrixBlock>(lix, new RowMatrixBlock(len, pos, tmp));
+					return new Tuple2<>(lix, new RowMatrixBlock(len, pos, tmp));
 				}
 				catch(Exception ex) {
 					throw new RuntimeException(ex);
@@ -649,7 +646,7 @@ public class RDDSortUtils
 						_currBlk = null;
 					}
 					
-					return new Tuple2<MatrixIndexes,RowMatrixBlock>(lix, new RowMatrixBlock(len, pos, tmp));
+					return new Tuple2<>(lix, new RowMatrixBlock(len, pos, tmp));
 				}
 				catch(Exception ex) {
 					throw new RuntimeException(ex);

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/SparkUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/SparkUtils.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/SparkUtils.java
index 4e7866d..977cd10 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/SparkUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/SparkUtils.java
@@ -66,47 +66,47 @@ public class SparkUtils
 	}
 
 	public static Tuple2<MatrixIndexes,MatrixBlock> fromIndexedMatrixBlock( IndexedMatrixValue in ){
-		return new Tuple2<MatrixIndexes,MatrixBlock>(in.getIndexes(), (MatrixBlock)in.getValue());
+		return new Tuple2<>(in.getIndexes(), (MatrixBlock)in.getValue());
 	}
 
 	public static ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> fromIndexedMatrixBlock( ArrayList<IndexedMatrixValue> in ) {
-		ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+		ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 		for( IndexedMatrixValue imv : in )
 			ret.add(fromIndexedMatrixBlock(imv));
 		return ret;
 	}
 
 	public static Pair<MatrixIndexes,MatrixBlock> fromIndexedMatrixBlockToPair( IndexedMatrixValue in ){
-		return new Pair<MatrixIndexes,MatrixBlock>(in.getIndexes(), (MatrixBlock)in.getValue());
+		return new Pair<>(in.getIndexes(), (MatrixBlock)in.getValue());
 	}
 
 	public static ArrayList<Pair<MatrixIndexes,MatrixBlock>> fromIndexedMatrixBlockToPair( ArrayList<IndexedMatrixValue> in ) {
-		ArrayList<Pair<MatrixIndexes,MatrixBlock>> ret = new ArrayList<Pair<MatrixIndexes,MatrixBlock>>();
+		ArrayList<Pair<MatrixIndexes,MatrixBlock>> ret = new ArrayList<>();
 		for( IndexedMatrixValue imv : in )
 			ret.add(fromIndexedMatrixBlockToPair(imv));
 		return ret;
 	}
 
 	public static Tuple2<Long,FrameBlock> fromIndexedFrameBlock( Pair<Long, FrameBlock> in ){
-		return new Tuple2<Long, FrameBlock>(in.getKey(), in.getValue());
+		return new Tuple2<>(in.getKey(), in.getValue());
 	}
 
 	public static ArrayList<Tuple2<Long,FrameBlock>> fromIndexedFrameBlock( ArrayList<Pair<Long, FrameBlock>> in ) {
-		ArrayList<Tuple2<Long, FrameBlock>> ret = new ArrayList<Tuple2<Long, FrameBlock>>();
+		ArrayList<Tuple2<Long, FrameBlock>> ret = new ArrayList<>();
 		for( Pair<Long, FrameBlock> ifv : in )
 			ret.add(fromIndexedFrameBlock(ifv));
 		return ret;
 	}
 
 	public static ArrayList<Pair<Long,Long>> toIndexedLong( List<Tuple2<Long, Long>> in ) {
-		ArrayList<Pair<Long, Long>> ret = new ArrayList<Pair<Long, Long>>();
+		ArrayList<Pair<Long, Long>> ret = new ArrayList<>();
 		for( Tuple2<Long, Long> e : in )
-			ret.add(new Pair<Long,Long>(e._1(), e._2()));
+			ret.add(new Pair<>(e._1(), e._2()));
 		return ret;
 	}
 
 	public static Pair<Long,FrameBlock> toIndexedFrameBlock( Tuple2<Long,FrameBlock> in ) {
-		return new Pair<Long,FrameBlock>(in._1(), in._2());
+		return new Pair<>(in._1(), in._2());
 	}
 
 	/**
@@ -281,7 +281,7 @@ public class SparkUtils
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Long arg0) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> list = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes,MatrixBlock>> list = new ArrayList<>();
 			long ncblks = _mc.getNumColBlocks();
 			long nblocksU = Math.min(arg0+_pNumBlocks, _mc.getNumBlocks());
 			for( long i=arg0; i<nblocksU; i++ ) {
@@ -289,9 +289,8 @@ public class SparkUtils
 				long cix = 1 + i % ncblks;
 				int lrlen = UtilFunctions.computeBlockSize(_mc.getRows(), rix, _mc.getRowsPerBlock());
 				int lclen = UtilFunctions.computeBlockSize(_mc.getCols(), cix, _mc.getColsPerBlock());
-				list.add(new Tuple2<MatrixIndexes,MatrixBlock>(
-						new MatrixIndexes(rix,cix), 
-						new MatrixBlock(lrlen, lclen, true)));
+				list.add(new Tuple2<>(new MatrixIndexes(rix,cix), 
+					new MatrixBlock(lrlen, lclen, true)));
 			}
 			return list.iterator();
 		}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/io/FrameReaderBinaryBlockParallel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameReaderBinaryBlockParallel.java b/src/main/java/org/apache/sysml/runtime/io/FrameReaderBinaryBlockParallel.java
index 45718f9..6d162cc 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameReaderBinaryBlockParallel.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameReaderBinaryBlockParallel.java
@@ -41,7 +41,7 @@ import org.apache.sysml.runtime.matrix.data.FrameBlock;
  */
 public class FrameReaderBinaryBlockParallel extends FrameReaderBinaryBlock
 {
-
+	@Override
 	protected void readBinaryBlockFrameFromHDFS( Path path, JobConf job, FileSystem fs, FrameBlock dest, long rlen, long clen )
 		throws IOException, DMLRuntimeException
 	{
@@ -51,12 +51,12 @@ public class FrameReaderBinaryBlockParallel extends FrameReaderBinaryBlock
 		{
 			//create read tasks for all files
 			ExecutorService pool = Executors.newFixedThreadPool(numThreads);
-			ArrayList<ReadFileTask> tasks = new ArrayList<ReadFileTask>();
+			ArrayList<ReadFileTask> tasks = new ArrayList<>();
 			for( Path lpath : IOUtilFunctions.getSequenceFilePaths(fs, path) )
 				tasks.add(new ReadFileTask(lpath, job, fs, dest));
 
 			//wait until all tasks have been executed
-			List<Future<Object>> rt = pool.invokeAll(tasks);	
+			List<Future<Object>> rt = pool.invokeAll(tasks);
 			pool.shutdown();
 			
 			//check for exceptions

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSV.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSV.java b/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSV.java
index 76da0de..275d647 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSV.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSV.java
@@ -225,7 +225,6 @@ public class FrameReaderTextCSV extends FrameReader
 				IOUtilFunctions.closeSilently(reader);
 			}
 		}
-		
-		return new Pair<Integer,Integer>(nrow, ncol);
+		return new Pair<>(nrow, ncol);
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSVParallel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSVParallel.java b/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSVParallel.java
index 0f8cb3a..3819962 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSVParallel.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCSVParallel.java
@@ -71,21 +71,21 @@ public class FrameReaderTextCSVParallel extends FrameReaderTextCSV
 				Math.min(numThreads, splits.length));
 			
 			//compute num rows per split
-			ArrayList<CountRowsTask> tasks = new ArrayList<CountRowsTask>();
+			ArrayList<CountRowsTask> tasks = new ArrayList<>();
 			for( int i=0; i<splits.length; i++ )
 				tasks.add(new CountRowsTask(splits[i], informat, job, _props.hasHeader(), i==0));
 			List<Future<Long>> cret = pool.invokeAll(tasks);
 
 			//compute row offset per split via cumsum on row counts
 			long offset = 0;
-			List<Long> offsets = new ArrayList<Long>();
+			List<Long> offsets = new ArrayList<>();
 			for( Future<Long> count : cret ) {
 				offsets.add(offset);
 				offset += count.get();
 			}
 			
 			//read individual splits
-			ArrayList<ReadRowsTask> tasks2 = new ArrayList<ReadRowsTask>();
+			ArrayList<ReadRowsTask> tasks2 = new ArrayList<>();
 			for( int i=0; i<splits.length; i++ )
 				tasks2.add( new ReadRowsTask(splits[i], informat, job, dest, offsets.get(i).intValue(), i==0));
 			List<Future<Object>> rret = pool.invokeAll(tasks2);
@@ -103,7 +103,7 @@ public class FrameReaderTextCSVParallel extends FrameReaderTextCSV
 	@Override
 	protected Pair<Integer,Integer> computeCSVSize( Path path, JobConf job, FileSystem fs) 
 		throws IOException 
-	{	
+	{
 		int numThreads = OptimizerUtils.getParallelTextReadParallelism();
 		
 		TextInputFormat informat = new TextInputFormat();
@@ -117,7 +117,7 @@ public class FrameReaderTextCSVParallel extends FrameReaderTextCSV
 		int nrow = 0;
 		ExecutorService pool = Executors.newFixedThreadPool(numThreads);
 		try {
-			ArrayList<CountRowsTask> tasks = new ArrayList<CountRowsTask>();
+			ArrayList<CountRowsTask> tasks = new ArrayList<>();
 			for( int i=0; i<splits.length; i++ )
 				tasks.add(new CountRowsTask(splits[i], informat, job, _props.hasHeader(), i==0));
 			List<Future<Long>> cret = pool.invokeAll(tasks);
@@ -130,8 +130,7 @@ public class FrameReaderTextCSVParallel extends FrameReaderTextCSV
 		finally {
 			pool.shutdown();
 		}
-		
-		return new Pair<Integer,Integer>(nrow, ncol);
+		return new Pair<>(nrow, ncol);
 	}
 
 	private static class CountRowsTask implements Callable<Long> 

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCellParallel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCellParallel.java b/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCellParallel.java
index 96b49d4..7e88030 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCellParallel.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameReaderTextCellParallel.java
@@ -60,12 +60,12 @@ public class FrameReaderTextCellParallel extends FrameReaderTextCell
 			//create read tasks for all splits
 			ExecutorService pool = Executors.newFixedThreadPool(numThreads);
 			InputSplit[] splits = informat.getSplits(job, numThreads);
-			ArrayList<ReadTask> tasks = new ArrayList<ReadTask>();
+			ArrayList<ReadTask> tasks = new ArrayList<>();
 			for( InputSplit split : splits )
 				tasks.add(new ReadTask(split, informat, job, dest));
 			
 			//wait until all tasks have been executed
-			List<Future<Object>> rt = pool.invokeAll(tasks);	
+			List<Future<Object>> rt = pool.invokeAll(tasks);
 			pool.shutdown();
 				
 			//check for exceptions

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java
index 52f1ed0..763d8a8 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java
@@ -73,7 +73,7 @@ public class FrameWriterBinaryBlockParallel extends FrameWriterBinaryBlock
 		try 
 		{
 			ExecutorService pool = Executors.newFixedThreadPool(numThreads);
-			ArrayList<WriteFileTask> tasks = new ArrayList<WriteFileTask>();
+			ArrayList<WriteFileTask> tasks = new ArrayList<>();
 			int blklen = (int)Math.ceil((double)rlen / blen / numThreads) * blen;
 			for(int i=0; i<numThreads & i*blklen<rlen; i++) {
 				Path newPath = new Path(path, IOUtilFunctions.getPartFileName(i));

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCSVParallel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCSVParallel.java b/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCSVParallel.java
index fe4fd39..4c2f39d 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCSVParallel.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCSVParallel.java
@@ -75,7 +75,7 @@ public class FrameWriterTextCSVParallel extends FrameWriterTextCSV
 		try 
 		{
 			ExecutorService pool = Executors.newFixedThreadPool(numThreads);
-			ArrayList<WriteFileTask> tasks = new ArrayList<WriteFileTask>();
+			ArrayList<WriteFileTask> tasks = new ArrayList<>();
 			int blklen = (int)Math.ceil((double)rlen / numThreads);
 			for(int i=0; i<numThreads & i*blklen<rlen; i++) {
 				Path newPath = new Path(path, IOUtilFunctions.getPartFileName(i));

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCellParallel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCellParallel.java b/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCellParallel.java
index f42ca41..ba55454 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCellParallel.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriterTextCellParallel.java
@@ -70,7 +70,7 @@ public class FrameWriterTextCellParallel extends FrameWriterTextCell
 		try 
 		{
 			ExecutorService pool = Executors.newFixedThreadPool(numThreads);
-			ArrayList<WriteFileTask> tasks = new ArrayList<WriteFileTask>();
+			ArrayList<WriteFileTask> tasks = new ArrayList<>();
 			int blklen = (int)Math.ceil((double)rlen / numThreads);
 			for(int i=0; i<numThreads & i*blklen<rlen; i++) {
 				Path newPath = new Path(path, IOUtilFunctions.getPartFileName(i));

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/io/IOUtilFunctions.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/IOUtilFunctions.java b/src/main/java/org/apache/sysml/runtime/io/IOUtilFunctions.java
index 3ac4dc4..9900c45 100644
--- a/src/main/java/org/apache/sysml/runtime/io/IOUtilFunctions.java
+++ b/src/main/java/org/apache/sysml/runtime/io/IOUtilFunctions.java
@@ -171,7 +171,7 @@ public class IOUtilFunctions
 			return new String[]{""};
 		
 		// scan string and create individual tokens
-		ArrayList<String> tokens = new ArrayList<String>();
+		ArrayList<String> tokens = new ArrayList<>();
 		int from = 0, to = 0; 
 		int len = str.length();
 		int dlen = delim.length();
@@ -464,7 +464,7 @@ public class IOUtilFunctions
 		if( fs.isDirectory(file) 
 			|| IOUtilFunctions.isObjectStoreFileScheme(file) )
 		{
-			LinkedList<Path> tmp = new LinkedList<Path>();
+			LinkedList<Path> tmp = new LinkedList<>();
 			FileStatus[] dStatus = fs.listStatus(file);
 			for( FileStatus fdStatus : dStatus )
 				if( !fdStatus.getPath().getName().startsWith("_") //skip internal files