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/11 05:53:17 UTC

[7/7] systemml git commit: [MINOR] Cleanup various issues raised by static code analysis, part 1

[MINOR] Cleanup various issues raised by static code analysis, part 1

Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/40dd894e
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/40dd894e
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/40dd894e

Branch: refs/heads/master
Commit: 40dd894ed09173b498b9dda3009f852d3cf962e9
Parents: b3d09d5
Author: Matthias Boehm <mb...@gmail.com>
Authored: Tue Oct 10 22:53:14 2017 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Tue Oct 10 22:53:14 2017 -0700

----------------------------------------------------------------------
 .../java/org/apache/sysml/api/DMLScript.java    |   2 +-
 .../org/apache/sysml/api/jmlc/JMLCProxy.java    |   2 +-
 .../org/apache/sysml/api/jmlc/JMLCUtils.java    |   8 +-
 .../apache/sysml/api/jmlc/PreparedScript.java   |   6 +-
 .../apache/sysml/api/jmlc/ResultVariables.java  |   2 +-
 .../apache/sysml/api/mlcontext/FrameSchema.java |   2 +-
 .../apache/sysml/api/mlcontext/MLContext.java   |   2 +-
 .../api/mlcontext/MLContextConversionUtil.java  |  10 +-
 .../sysml/api/mlcontext/MLContextUtil.java      |   4 +-
 .../apache/sysml/api/mlcontext/MLResults.java   |  44 ++++----
 .../apache/sysml/api/mlcontext/ProjectInfo.java |   2 +-
 .../org/apache/sysml/api/mlcontext/Script.java  |  14 +--
 .../org/apache/sysml/conf/CompilerConfig.java   |   4 +-
 .../apache/sysml/conf/ConfigurationManager.java |  14 +--
 .../java/org/apache/sysml/conf/DMLConfig.java   |   4 +-
 .../sysml/debug/DMLBreakpointManager.java       |   2 +-
 .../sysml/debug/DMLDebuggerProgramInfo.java     |   4 +-
 .../java/org/apache/sysml/debug/DebugState.java |   2 +-
 .../java/org/apache/sysml/hops/AggBinaryOp.java |   2 +-
 .../java/org/apache/sysml/hops/BinaryOp.java    |   4 +-
 .../org/apache/sysml/hops/ConvolutionOp.java    |   4 +-
 .../java/org/apache/sysml/hops/DataGenOp.java   |   4 +-
 src/main/java/org/apache/sysml/hops/DataOp.java |   4 +-
 .../java/org/apache/sysml/hops/FunctionOp.java  |   2 +-
 src/main/java/org/apache/sysml/hops/Hop.java    |  70 ++++++------
 .../java/org/apache/sysml/hops/IndexingOp.java  |   2 +-
 .../java/org/apache/sysml/hops/MemoTable.java   |   2 +-
 .../org/apache/sysml/hops/OptimizerUtils.java   |  10 +-
 .../sysml/hops/ParameterizedBuiltinOp.java      |   8 +-
 .../java/org/apache/sysml/hops/ReorgOp.java     |   4 +-
 .../java/org/apache/sysml/hops/UnaryOp.java     |   4 +-
 .../sysml/hops/codegen/SpoofCompiler.java       |  15 ++-
 .../apache/sysml/hops/codegen/SpoofFusedOp.java |   2 +-
 .../apache/sysml/hops/codegen/cplan/CNode.java  |   2 +-
 .../sysml/hops/codegen/cplan/CNodeTpl.java      |   6 +-
 .../sysml/hops/codegen/opt/PlanAnalyzer.java    |  14 +--
 .../sysml/hops/codegen/opt/PlanSelection.java   |   7 +-
 .../codegen/opt/PlanSelectionFuseCostBased.java |  28 ++---
 .../opt/PlanSelectionFuseCostBasedV2.java       |  28 ++---
 .../opt/PlanSelectionFuseNoRedundancy.java      |   4 +-
 .../hops/codegen/opt/ReachabilityGraph.java     |   9 ++
 .../hops/codegen/template/CPlanCSERewriter.java |   2 +-
 .../hops/codegen/template/CPlanMemoTable.java   |  14 +--
 .../hops/codegen/template/TemplateCell.java     |   8 +-
 .../hops/codegen/template/TemplateMultiAgg.java |  14 +--
 .../codegen/template/TemplateOuterProduct.java  |  13 +--
 .../hops/codegen/template/TemplateRow.java      |  10 +-
 .../sysml/hops/cost/CostEstimationWrapper.java  |   6 +-
 .../apache/sysml/hops/cost/CostEstimator.java   |   2 +-
 .../hops/cost/CostEstimatorStaticRuntime.java   |   6 +-
 .../sysml/hops/globalopt/GDFEnumOptimizer.java  |  14 +--
 .../sysml/hops/globalopt/MemoStructure.java     |   4 +-
 .../org/apache/sysml/hops/globalopt/Plan.java   |   6 +-
 .../apache/sysml/hops/globalopt/PlanSet.java    |  12 +-
 .../globalopt/gdfgraph/GDFCrossBlockNode.java   |   4 +-
 .../hops/globalopt/gdfgraph/GDFLoopNode.java    |   2 +-
 .../hops/globalopt/gdfgraph/GraphBuilder.java   |  18 +--
 .../sysml/hops/ipa/FunctionCallGraph.java       |  22 ++--
 .../sysml/hops/ipa/FunctionCallSizeInfo.java    |  23 +++-
 .../ipa/IPAPassRemoveConstantBinaryOps.java     |   4 +-
 .../IPAPassRemoveUnnecessaryCheckpoints.java    |  16 +--
 .../sysml/hops/ipa/InterProceduralAnalysis.java |   6 +-
 .../hops/recompile/LiteralReplacement.java      |   2 +-
 .../sysml/hops/recompile/RecompileStatus.java   |   2 +-
 .../apache/sysml/hops/recompile/Recompiler.java |  32 +++---
 .../sysml/hops/rewrite/HopRewriteUtils.java     |  14 +--
 .../sysml/hops/rewrite/ProgramRewriter.java     |  24 ++--
 .../RewriteAlgebraicSimplificationDynamic.java  |   6 +-
 .../RewriteAlgebraicSimplificationStatic.java   |  14 +--
 .../RewriteCommonSubexpressionElimination.java  |   8 +-
 .../hops/rewrite/RewriteConstantFolding.java    |   2 +-
 .../rewrite/RewriteIndexingVectorization.java   |   8 +-
 .../RewriteInjectSparkLoopCheckpointing.java    |   4 +-
 .../RewriteMarkLoopVariablesUpdateInPlace.java  |   2 +-
 .../RewriteMatrixMultChainOptimization.java     |   4 +-
 .../hops/rewrite/RewriteMergeBlockSequence.java |   2 +-
 .../RewriteRemovePersistentReadWrite.java       |   6 +-
 .../rewrite/RewriteRemoveReadAfterWrite.java    |   4 +-
 .../RewriteRemoveUnnecessaryBranches.java       |   2 +-
 .../RewriteSplitDagDataDependentOperators.java  |  24 ++--
 .../rewrite/RewriteSplitDagUnknownCSVRead.java  |  10 +-
 src/main/java/org/apache/sysml/lops/Binary.java |   3 +-
 .../org/apache/sysml/lops/CombineBinary.java    |   4 +-
 .../org/apache/sysml/lops/CombineTernary.java   |   4 +-
 .../org/apache/sysml/lops/CombineUnary.java     |   2 +-
 .../apache/sysml/lops/ConvolutionTransform.java |   2 +-
 src/main/java/org/apache/sysml/lops/Data.java   |   2 +-
 .../org/apache/sysml/lops/FunctionCallCP.java   |   2 +-
 src/main/java/org/apache/sysml/lops/Group.java  |   2 +-
 src/main/java/org/apache/sysml/lops/Lop.java    |   8 +-
 .../org/apache/sysml/lops/LopProperties.java    |   4 +-
 .../java/org/apache/sysml/lops/MultipleCP.java  |   2 +-
 .../org/apache/sysml/lops/OutputParameters.java |   3 +-
 .../apache/sysml/lops/ParameterizedBuiltin.java |   2 +-
 .../org/apache/sysml/lops/PartialAggregate.java |   2 +-
 .../java/org/apache/sysml/lops/PickByCount.java |   2 +-
 .../java/org/apache/sysml/lops/SortKeys.java    |   4 +-
 .../java/org/apache/sysml/lops/Ternary.java     |   4 +-
 .../java/org/apache/sysml/lops/Transform.java   |   2 +-
 src/main/java/org/apache/sysml/lops/Unary.java  |   2 +-
 .../java/org/apache/sysml/lops/UnaryCP.java     |   2 +-
 .../java/org/apache/sysml/lops/compile/Dag.java | 112 +++++++++----------
 .../sysml/parser/AssignmentStatement.java       |   4 +-
 .../sysml/parser/BuiltinFunctionExpression.java |  10 +-
 .../org/apache/sysml/parser/DMLProgram.java     |   8 +-
 .../org/apache/sysml/parser/DMLTranslator.java  |  74 ++++++------
 .../org/apache/sysml/parser/DataExpression.java |   2 +-
 .../org/apache/sysml/parser/Expression.java     |  20 ++--
 .../org/apache/sysml/parser/ForStatement.java   |   8 +-
 .../sysml/parser/FunctionCallIdentifier.java    |   2 +-
 .../apache/sysml/parser/FunctionStatement.java  |   6 +-
 .../org/apache/sysml/parser/IfStatement.java    |   4 +-
 .../apache/sysml/parser/IfStatementBlock.java   |   6 +-
 .../sysml/parser/MultiAssignmentStatement.java  |   3 +-
 .../apache/sysml/parser/OutputStatement.java    |   2 +-
 .../sysml/parser/ParForStatementBlock.java      |  56 +++++-----
 .../ParameterizedBuiltinFunctionExpression.java |  18 ++-
 .../org/apache/sysml/parser/PrintStatement.java |   6 +-
 .../org/apache/sysml/parser/StatementBlock.java |  24 ++--
 .../org/apache/sysml/parser/VariableSet.java    |   4 +-
 .../org/apache/sysml/parser/WhileStatement.java |  12 +-
 .../parser/common/CommonSyntacticValidator.java |  14 +--
 .../parser/common/CustomErrorListener.java      |   2 +-
 .../sysml/parser/dml/DmlPreprocessor.java       |   2 +-
 .../sysml/parser/dml/DmlSyntacticValidator.java |  30 ++---
 .../sysml/parser/pydml/PydmlPreprocessor.java   |   2 +-
 .../parser/pydml/PydmlSyntacticValidator.java   |  40 +++----
 .../sysml/runtime/codegen/CodegenUtils.java     |   6 +-
 .../sysml/runtime/codegen/SpoofCellwise.java    |   4 +-
 .../runtime/codegen/SpoofMultiAggregate.java    |   4 +-
 .../runtime/codegen/SpoofOuterProduct.java      |   4 +-
 .../sysml/runtime/codegen/SpoofRowwise.java     |   4 +-
 .../sysml/runtime/compress/BitmapEncoder.java   |   2 +-
 .../sysml/runtime/compress/ColGroupOffset.java  |   3 +-
 .../sysml/runtime/compress/ColGroupRLE.java     |   3 +-
 .../sysml/runtime/compress/ColGroupValue.java   |   4 +-
 .../runtime/compress/CompressedMatrixBlock.java |  46 ++++----
 .../compress/ReaderColumnSelectionDense.java    |   2 +-
 .../ReaderColumnSelectionDenseSample.java       |   2 +-
 .../compress/ReaderColumnSelectionSparse.java   |   2 +-
 .../ColumnGroupPartitionerBinPacking.java       |   6 +-
 .../cocode/ColumnGroupPartitionerStatic.java    |   4 +-
 .../compress/cocode/PlanningCoCoder.java        |  16 +--
 .../compress/cocode/PlanningMemoTable.java      |   2 +-
 .../estim/CompressedSizeEstimatorSample.java    |   4 +-
 .../runtime/compress/utils/ConverterUtils.java  |   2 +-
 .../compress/utils/DblArrayIntListHashMap.java  |   2 +-
 .../compress/utils/DoubleIntListHashMap.java    |   2 +-
 .../ExternalFunctionProgramBlock.java           |  71 ++++++------
 .../controlprogram/FunctionProgramBlock.java    |   6 +-
 .../controlprogram/ParForProgramBlock.java      |   4 +
 .../controlprogram/caching/CacheableData.java   |   2 +-
 .../controlprogram/caching/PageCache.java       |  10 +-
 .../context/SparkExecutionContext.java          |   2 +-
 .../parfor/DataPartitionerLocal.java            |  10 +-
 .../parfor/RemoteParForSparkWorker.java         |   3 +-
 .../parfor/ResultMergeLocalFile.java            |   8 +-
 .../parfor/ResultMergeRemoteGrouping.java       |  10 +-
 .../parfor/ResultMergeRemoteSorting.java        |  16 +--
 .../parfor/opt/OptTreeConverter.java            |   6 +-
 .../parfor/util/StagingFileUtils.java           |   2 +-
 .../sysml/runtime/functionobjects/Builtin.java  |   2 +-
 .../functionobjects/ParameterizedBuiltin.java   |   4 +-
 .../sysml/runtime/instructions/Instruction.java |   2 +-
 .../runtime/instructions/MRJobInstruction.java  |   8 +-
 .../instructions/cp/BreakPointInstruction.java  |   2 +-
 .../runtime/instructions/cp/CPInstruction.java  |   2 +-
 .../cp/ConvolutionCPInstruction.java            |  28 ++---
 .../cp/FunctionCallCPInstruction.java           |  10 +-
 .../cp/MultiReturnBuiltinCPInstruction.java     |   2 +-
 ...ReturnParameterizedBuiltinCPInstruction.java |   2 +-
 .../instructions/cp/SpoofCPInstruction.java     |   6 +-
 .../instructions/cp/VariableCPInstruction.java  |   2 +-
 .../ParameterizedBuiltinCPFileInstruction.java  |  28 ++---
 .../gpu/ConvolutionGPUInstruction.java          |  28 ++---
 .../instructions/gpu/GPUInstruction.java        |   2 +-
 .../runtime/instructions/mr/MRInstruction.java  |   2 +-
 .../spark/ConvolutionSPInstruction.java         |  33 +++---
 ...ReturnParameterizedBuiltinSPInstruction.java |  20 ++--
 .../instructions/spark/SPInstruction.java       |   2 +-
 .../instructions/spark/SpoofSPInstruction.java  |  24 ++--
 .../spark/data/BlockPartitioner.java            |   8 ++
 .../sysml/runtime/io/IOUtilFunctions.java       |   2 +-
 .../apache/sysml/runtime/matrix/CombineMR.java  |   4 +-
 .../org/apache/sysml/runtime/matrix/GMR.java    |   6 +-
 .../apache/sysml/runtime/matrix/WriteCSVMR.java |   2 +-
 .../matrix/data/AddDummyWeightConverter.java    |   8 +-
 .../matrix/data/FileFormatProperties.java       |   3 +-
 .../runtime/matrix/data/LibMatrixDNNHelper.java |  14 +--
 .../runtime/matrix/data/LibMatrixOuterAgg.java  |   2 +-
 .../sysml/runtime/matrix/data/OutputInfo.java   |  13 ++-
 .../matrix/data/TaggedFirstSecondIndexes.java   |   5 +-
 .../data/hadoopfix/DelegatingInputFormat.java   |   8 +-
 .../runtime/matrix/mapred/CMCOVMRMapper.java    |   6 +-
 .../runtime/matrix/mapred/CMCOVMRReducer.java   |  10 +-
 .../matrix/mapred/CSVAssignRowIDReducer.java    |   2 +-
 .../runtime/matrix/mapred/CSVWriteMapper.java   |  10 +-
 .../runtime/matrix/mapred/CSVWriteReducer.java  |   4 +-
 .../runtime/matrix/mapred/CachedValueMap.java   |   6 +-
 .../mapred/CollectMultipleConvertedOutputs.java |  11 +-
 .../runtime/matrix/mapred/GMRCtableBuffer.java  |   4 +-
 .../sysml/runtime/matrix/mapred/GMRMapper.java  |   2 +-
 .../matrix/mapred/GroupedAggMRCombiner.java     |   4 +-
 .../matrix/mapred/GroupedAggMRMapper.java       |   2 +-
 .../matrix/mapred/GroupedAggMRReducer.java      |   6 +-
 .../runtime/matrix/mapred/MMRJMRMapper.java     |   6 +-
 .../mapred/MRBaseForCommonInstructions.java     |   4 +-
 .../matrix/mapred/MRJobConfiguration.java       |  26 ++---
 .../sysml/runtime/matrix/mapred/MapperBase.java |  24 ++--
 .../runtime/matrix/mapred/ReblockMapper.java    |   8 +-
 .../runtime/matrix/mapred/ReblockReducer.java   |   2 +-
 .../sysml/runtime/matrix/mapred/ReduceBase.java |  16 ++-
 .../runtime/matrix/operators/CMOperator.java    |   2 +-
 .../runtime/matrix/sort/ValueSortMapper.java    |  11 +-
 .../transform/decode/DecoderFactory.java        |   2 -
 .../transform/encode/EncoderFactory.java        |   3 +-
 .../transform/encode/EncoderMVImpute.java       |   2 +-
 .../runtime/transform/meta/TfMetaUtils.java     |   1 -
 .../sysml/runtime/util/DataConverter.java       |   2 +-
 .../sysml/runtime/util/UtilFunctions.java       |   2 +-
 src/main/java/org/apache/sysml/udf/Matrix.java  |   2 +-
 .../org/apache/sysml/udf/PackageFunction.java   |   2 +-
 src/main/java/org/apache/sysml/udf/Scalar.java  |   4 +-
 .../apache/sysml/udf/lib/RemoveEmptyRows.java   |   2 +-
 .../org/apache/sysml/udf/lib/RowClassMeet.java  |   2 +-
 .../java/org/apache/sysml/utils/Explain.java    |   8 +-
 .../org/apache/sysml/utils/GPUStatistics.java   |  10 +-
 .../utils/GenerateClassesForMLContext.java      |   2 +-
 .../org/apache/sysml/utils/NativeHelper.java    |   2 +-
 .../java/org/apache/sysml/utils/Statistics.java |   5 +-
 .../org/apache/sysml/utils/lite/BuildLite.java  |  26 ++---
 .../sysml/utils/lite/BuildLiteExecution.java    |  11 +-
 .../apache/sysml/yarn/DMLAppMasterUtils.java    |  11 +-
 .../org/apache/sysml/yarn/DMLYarnClient.java    |   4 +-
 .../sysml/yarn/ropt/GridEnumerationEqui.java    |   6 +-
 .../sysml/yarn/ropt/GridEnumerationExp.java     |   6 +-
 .../sysml/yarn/ropt/GridEnumerationHybrid.java  |   5 +-
 .../sysml/yarn/ropt/GridEnumerationMemory.java  |  10 +-
 .../apache/sysml/yarn/ropt/ResourceConfig.java  |   4 +-
 .../sysml/yarn/ropt/ResourceOptimizer.java      |  12 +-
 .../sysml/yarn/ropt/YarnClusterAnalyzer.java    |  11 +-
 .../test/integration/AutomatedTestBase.java     |   2 +-
 .../descriptivestats/UnivariateStatsBase.java   |   6 +-
 .../integration/functions/data/SampleTest.java  |   2 +-
 .../functions/data/SequenceTest.java            |   2 +-
 .../functions/frame/FrameConverterTest.java     |   2 -
 .../functions/unary/matrix/IQMTest.java         |   2 +-
 .../functions/unary/matrix/RoundTest.java       |   2 +-
 .../unary/scalar/FullDistributionTest.java      |   2 +-
 .../mlcontext/MLContextFrameTest.java           |   4 +-
 250 files changed, 1061 insertions(+), 1112 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/DMLScript.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/DMLScript.java b/src/main/java/org/apache/sysml/api/DMLScript.java
index fa4b4a1..ba447cf 100644
--- a/src/main/java/org/apache/sysml/api/DMLScript.java
+++ b/src/main/java/org/apache/sysml/api/DMLScript.java
@@ -842,7 +842,7 @@ public class DMLScript
 	{
 		//analyze local configuration
 		String userName = System.getProperty( "user.name" );
-		HashSet<String> groupNames = new HashSet<String>();
+		HashSet<String> groupNames = new HashSet<>();
 		try{
 			//check existence, for backwards compatibility to < hadoop 0.21
 			if( UserGroupInformation.class.getMethod("getCurrentUser") != null ){

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/jmlc/JMLCProxy.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/jmlc/JMLCProxy.java b/src/main/java/org/apache/sysml/api/jmlc/JMLCProxy.java
index b17857b..400380c 100644
--- a/src/main/java/org/apache/sysml/api/jmlc/JMLCProxy.java
+++ b/src/main/java/org/apache/sysml/api/jmlc/JMLCProxy.java
@@ -40,7 +40,7 @@ public class JMLCProxy
 	
 	public static void setActive(String[] output) {
 		if( output != null )
-			_outputs.set(new HashSet<String>(Arrays.asList(output)));
+			_outputs.set(new HashSet<>(Arrays.asList(output)));
 		else
 			_outputs.remove();
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/jmlc/JMLCUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/jmlc/JMLCUtils.java b/src/main/java/org/apache/sysml/api/jmlc/JMLCUtils.java
index c09be9b..eb888ba 100644
--- a/src/main/java/org/apache/sysml/api/jmlc/JMLCUtils.java
+++ b/src/main/java/org/apache/sysml/api/jmlc/JMLCUtils.java
@@ -51,7 +51,7 @@ public class JMLCUtils
 	public static void cleanupRuntimeProgram( Program prog, String[] outputs)
 	{
 		Map<String, FunctionProgramBlock> funcMap = prog.getFunctionProgramBlocks();
-		HashSet<String> blacklist = new HashSet<String>(Arrays.asList(outputs));
+		HashSet<String> blacklist = new HashSet<>(Arrays.asList(outputs));
 		
 		if( funcMap != null && !funcMap.isEmpty() )
 		{
@@ -110,7 +110,7 @@ public class JMLCUtils
 	 * @return list of instructions
 	 */
 	public static ArrayList<Instruction> cleanupRuntimeInstructions( ArrayList<Instruction> insts, String... outputs ) {
-		return cleanupRuntimeInstructions(insts, new HashSet<String>(Arrays.asList(outputs)));
+		return cleanupRuntimeInstructions(insts, new HashSet<>(Arrays.asList(outputs)));
 	}
 	
 	/**
@@ -123,12 +123,12 @@ public class JMLCUtils
 	 */
 	public static ArrayList<Instruction> cleanupRuntimeInstructions( ArrayList<Instruction> insts, HashSet<String> outputs )
 	{
-		ArrayList<Instruction> ret = new ArrayList<Instruction>();
+		ArrayList<Instruction> ret = new ArrayList<>();
 		
 		for( Instruction inst : insts ) {
 			if( inst instanceof VariableCPInstruction && ((VariableCPInstruction)inst).isRemoveVariable() )
 			{
-				ArrayList<String> currRmVar = new ArrayList<String>();
+				ArrayList<String> currRmVar = new ArrayList<>();
 				for( CPOperand input : ((VariableCPInstruction)inst).getInputs() )
 					if( !outputs.contains(input.getName()) )
 						currRmVar.add(input.getName());

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java b/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java
index 71f5e1b..6cd041c 100644
--- a/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java
+++ b/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java
@@ -85,11 +85,11 @@ public class PreparedScript
 		_vars = new LocalVariableMap();
 		
 		//populate input/output vars
-		_inVarnames = new HashSet<String>();
+		_inVarnames = new HashSet<>();
 		Collections.addAll(_inVarnames, inputs);
-		_outVarnames = new HashSet<String>();
+		_outVarnames = new HashSet<>();
 		Collections.addAll(_outVarnames, outputs);
-		_inVarReuse = new HashMap<String, Data>();
+		_inVarReuse = new HashMap<>();
 	}
 	
 	/**

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/jmlc/ResultVariables.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/jmlc/ResultVariables.java b/src/main/java/org/apache/sysml/api/jmlc/ResultVariables.java
index 3b31c5d..289355b 100644
--- a/src/main/java/org/apache/sysml/api/jmlc/ResultVariables.java
+++ b/src/main/java/org/apache/sysml/api/jmlc/ResultVariables.java
@@ -42,7 +42,7 @@ public class ResultVariables
 	private HashMap<String, Data> _out = null;
 	
 	public ResultVariables() {
-		_out = new HashMap<String, Data>();
+		_out = new HashMap<>();
 	}
 	
 	/**

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/mlcontext/FrameSchema.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/FrameSchema.java b/src/main/java/org/apache/sysml/api/mlcontext/FrameSchema.java
index c1f7466..9c6137b 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/FrameSchema.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/FrameSchema.java
@@ -99,7 +99,7 @@ public class FrameSchema {
 			return null;
 		}
 		String[] cols = schemaString.split(",");
-		List<ValueType> list = new ArrayList<ValueType>();
+		List<ValueType> list = new ArrayList<>();
 		for (String col : cols) {
 			list.add(ValueType.valueOf(col.toUpperCase()));
 		}

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/mlcontext/MLContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/MLContext.java b/src/main/java/org/apache/sysml/api/mlcontext/MLContext.java
index b6b7eb0..762db8f 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/MLContext.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/MLContext.java
@@ -161,7 +161,7 @@ public class MLContext {
 				return ExplainType.HOPS;
 			}
 		}
-	};
+	}
 
 	/**
 	 * The different types of execution environments supported by SystemML. The

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java b/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
index 2512abb..6112a8a 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
@@ -398,7 +398,7 @@ public class MLContextConversionUtil {
 
 			// convert data frame and obtain column names / schema
 			// TODO extend frame schema by column names (right now dropped)
-			Pair<String[], ValueType[]> ret = new Pair<String[], ValueType[]>();
+			Pair<String[], ValueType[]> ret = new Pair<>();
 			JavaPairRDD<Long, FrameBlock> binaryBlock = FrameRDDConverterUtils.dataFrameToBinaryBlock(jsc(), dataFrame,
 					mc, containsID, ret);
 			frameMetadata.setFrameSchema(new FrameSchema(Arrays.asList(ret.getValue())));
@@ -1003,7 +1003,7 @@ public class MLContextConversionUtil {
 
 			int rows = mb.getNumRows();
 			int cols = mb.getNumColumns();
-			List<String> list = new ArrayList<String>();
+			List<String> list = new ArrayList<>();
 
 			if (mb.getNonZeros() > 0) {
 				if (mb.isInSparseFormat()) {
@@ -1068,7 +1068,7 @@ public class MLContextConversionUtil {
 
 			int rows = fb.getNumRows();
 			int cols = fb.getNumColumns();
-			List<String> list = new ArrayList<String>();
+			List<String> list = new ArrayList<>();
 
 			for (int i = 0; i < rows; i++) {
 				StringBuilder sb = new StringBuilder();
@@ -1103,7 +1103,7 @@ public class MLContextConversionUtil {
 
 			int rows = mb.getNumRows();
 			int cols = mb.getNumColumns();
-			List<String> list = new ArrayList<String>();
+			List<String> list = new ArrayList<>();
 
 			if (mb.getNonZeros() > 0) {
 				if (mb.isInSparseFormat()) {
@@ -1157,7 +1157,7 @@ public class MLContextConversionUtil {
 
 			int rows = fb.getNumRows();
 			int cols = fb.getNumColumns();
-			List<String> list = new ArrayList<String>();
+			List<String> list = new ArrayList<>();
 
 			StringBuilder sb = null;
 			for (int i = 0; i < rows; i++) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java b/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java
index 03184e3..6c1788a 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java
@@ -467,7 +467,7 @@ public final class MLContextUtil {
 		if (scriptType == null) {
 			throw new MLContextException("ScriptType needs to be specified");
 		}
-		Map<String, String> convertedMap = new HashMap<String, String>();
+		Map<String, String> convertedMap = new HashMap<>();
 		for (Entry<String, Object> entry : basicInputParameterMap.entrySet()) {
 			String key = entry.getKey();
 			Object value = entry.getValue();
@@ -1250,7 +1250,7 @@ public final class MLContextUtil {
 			scriptExecutor.compile(script, performHOPRewrites);
 			Explain.reset();
 			// To deal with potential Py4J issues
-			lines = lines.size() == 1 && lines.get(0) == -1 ? new ArrayList<Integer>() : lines;
+			lines = lines.size() == 1 && lines.get(0) == -1 ? new ArrayList<>() : lines;
 			return Explain.getHopDAG(scriptExecutor.dmlProgram, lines, withSubgraph);
 		} catch (RuntimeException e) {
 			throw new MLContextException("Exception when compiling script", e);

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/mlcontext/MLResults.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/MLResults.java b/src/main/java/org/apache/sysml/api/mlcontext/MLResults.java
index 6c4cfc5..1226b0d 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/MLResults.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/MLResults.java
@@ -605,7 +605,7 @@ public class MLResults {
 	 */
 	@SuppressWarnings("unchecked")
 	public <T> Tuple1<T> getTuple(String outputName1) {
-		return new Tuple1<T>((T) outputValue(outputName1));
+		return new Tuple1<>((T) outputValue(outputName1));
 	}
 
 	/**
@@ -623,7 +623,7 @@ public class MLResults {
 	 */
 	@SuppressWarnings("unchecked")
 	public <T1, T2> Tuple2<T1, T2> getTuple(String outputName1, String outputName2) {
-		return new Tuple2<T1, T2>((T1) outputValue(outputName1), (T2) outputValue(outputName2));
+		return new Tuple2<>((T1) outputValue(outputName1), (T2) outputValue(outputName2));
 	}
 
 	/**
@@ -645,7 +645,7 @@ public class MLResults {
 	 */
 	@SuppressWarnings("unchecked")
 	public <T1, T2, T3> Tuple3<T1, T2, T3> getTuple(String outputName1, String outputName2, String outputName3) {
-		return new Tuple3<T1, T2, T3>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
+		return new Tuple3<>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
 				(T3) outputValue(outputName3));
 	}
 
@@ -673,7 +673,7 @@ public class MLResults {
 	@SuppressWarnings("unchecked")
 	public <T1, T2, T3, T4> Tuple4<T1, T2, T3, T4> getTuple(String outputName1, String outputName2, String outputName3,
 			String outputName4) {
-		return new Tuple4<T1, T2, T3, T4>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
+		return new Tuple4<>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
 				(T3) outputValue(outputName3), (T4) outputValue(outputName4));
 	}
 
@@ -705,7 +705,7 @@ public class MLResults {
 	@SuppressWarnings("unchecked")
 	public <T1, T2, T3, T4, T5> Tuple5<T1, T2, T3, T4, T5> getTuple(String outputName1, String outputName2,
 			String outputName3, String outputName4, String outputName5) {
-		return new Tuple5<T1, T2, T3, T4, T5>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
+		return new Tuple5<>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
 				(T3) outputValue(outputName3), (T4) outputValue(outputName4), (T5) outputValue(outputName5));
 	}
 
@@ -741,7 +741,7 @@ public class MLResults {
 	@SuppressWarnings("unchecked")
 	public <T1, T2, T3, T4, T5, T6> Tuple6<T1, T2, T3, T4, T5, T6> getTuple(String outputName1, String outputName2,
 			String outputName3, String outputName4, String outputName5, String outputName6) {
-		return new Tuple6<T1, T2, T3, T4, T5, T6>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
+		return new Tuple6<>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
 				(T3) outputValue(outputName3), (T4) outputValue(outputName4), (T5) outputValue(outputName5),
 				(T6) outputValue(outputName6));
 	}
@@ -783,7 +783,7 @@ public class MLResults {
 	public <T1, T2, T3, T4, T5, T6, T7> Tuple7<T1, T2, T3, T4, T5, T6, T7> getTuple(String outputName1,
 			String outputName2, String outputName3, String outputName4, String outputName5, String outputName6,
 			String outputName7) {
-		return new Tuple7<T1, T2, T3, T4, T5, T6, T7>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
+		return new Tuple7<>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
 				(T3) outputValue(outputName3), (T4) outputValue(outputName4), (T5) outputValue(outputName5),
 				(T6) outputValue(outputName6), (T7) outputValue(outputName7));
 	}
@@ -829,7 +829,7 @@ public class MLResults {
 	public <T1, T2, T3, T4, T5, T6, T7, T8> Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> getTuple(String outputName1,
 			String outputName2, String outputName3, String outputName4, String outputName5, String outputName6,
 			String outputName7, String outputName8) {
-		return new Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
+		return new Tuple8<>((T1) outputValue(outputName1), (T2) outputValue(outputName2),
 				(T3) outputValue(outputName3), (T4) outputValue(outputName4), (T5) outputValue(outputName5),
 				(T6) outputValue(outputName6), (T7) outputValue(outputName7), (T8) outputValue(outputName8));
 	}
@@ -879,7 +879,7 @@ public class MLResults {
 	public <T1, T2, T3, T4, T5, T6, T7, T8, T9> Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> getTuple(String outputName1,
 			String outputName2, String outputName3, String outputName4, String outputName5, String outputName6,
 			String outputName7, String outputName8, String outputName9) {
-		return new Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9>((T1) outputValue(outputName1),
+		return new Tuple9<>((T1) outputValue(outputName1),
 				(T2) outputValue(outputName2), (T3) outputValue(outputName3), (T4) outputValue(outputName4),
 				(T5) outputValue(outputName5), (T6) outputValue(outputName6), (T7) outputValue(outputName7),
 				(T8) outputValue(outputName8), (T9) outputValue(outputName9));
@@ -934,7 +934,7 @@ public class MLResults {
 	public <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> getTuple(
 			String outputName1, String outputName2, String outputName3, String outputName4, String outputName5,
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10) {
-		return new Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>((T1) outputValue(outputName1),
+		return new Tuple10<>((T1) outputValue(outputName1),
 				(T2) outputValue(outputName2), (T3) outputValue(outputName3), (T4) outputValue(outputName4),
 				(T5) outputValue(outputName5), (T6) outputValue(outputName6), (T7) outputValue(outputName7),
 				(T8) outputValue(outputName8), (T9) outputValue(outputName9), (T10) outputValue(outputName10));
@@ -994,7 +994,7 @@ public class MLResults {
 			String outputName1, String outputName2, String outputName3, String outputName4, String outputName5,
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11) {
-		return new Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>((T1) outputValue(outputName1),
+		return new Tuple11<>((T1) outputValue(outputName1),
 				(T2) outputValue(outputName2), (T3) outputValue(outputName3), (T4) outputValue(outputName4),
 				(T5) outputValue(outputName5), (T6) outputValue(outputName6), (T7) outputValue(outputName7),
 				(T8) outputValue(outputName8), (T9) outputValue(outputName9), (T10) outputValue(outputName10),
@@ -1059,7 +1059,7 @@ public class MLResults {
 			String outputName1, String outputName2, String outputName3, String outputName4, String outputName5,
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12) {
-		return new Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>((T1) outputValue(outputName1),
+		return new Tuple12<>((T1) outputValue(outputName1),
 				(T2) outputValue(outputName2), (T3) outputValue(outputName3), (T4) outputValue(outputName4),
 				(T5) outputValue(outputName5), (T6) outputValue(outputName6), (T7) outputValue(outputName7),
 				(T8) outputValue(outputName8), (T9) outputValue(outputName9), (T10) outputValue(outputName10),
@@ -1128,7 +1128,7 @@ public class MLResults {
 			String outputName1, String outputName2, String outputName3, String outputName4, String outputName5,
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12, String outputName13) {
-		return new Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>((T1) outputValue(outputName1),
+		return new Tuple13<>((T1) outputValue(outputName1),
 				(T2) outputValue(outputName2), (T3) outputValue(outputName3), (T4) outputValue(outputName4),
 				(T5) outputValue(outputName5), (T6) outputValue(outputName6), (T7) outputValue(outputName7),
 				(T8) outputValue(outputName8), (T9) outputValue(outputName9), (T10) outputValue(outputName10),
@@ -1201,7 +1201,7 @@ public class MLResults {
 			String outputName1, String outputName2, String outputName3, String outputName4, String outputName5,
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12, String outputName13, String outputName14) {
-		return new Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>((T1) outputValue(outputName1),
+		return new Tuple14<>((T1) outputValue(outputName1),
 				(T2) outputValue(outputName2), (T3) outputValue(outputName3), (T4) outputValue(outputName4),
 				(T5) outputValue(outputName5), (T6) outputValue(outputName6), (T7) outputValue(outputName7),
 				(T8) outputValue(outputName8), (T9) outputValue(outputName9), (T10) outputValue(outputName10),
@@ -1279,7 +1279,7 @@ public class MLResults {
 			String outputName1, String outputName2, String outputName3, String outputName4, String outputName5,
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12, String outputName13, String outputName14, String outputName15) {
-		return new Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(
+		return new Tuple15<>(
 				(T1) outputValue(outputName1), (T2) outputValue(outputName2), (T3) outputValue(outputName3),
 				(T4) outputValue(outputName4), (T5) outputValue(outputName5), (T6) outputValue(outputName6),
 				(T7) outputValue(outputName7), (T8) outputValue(outputName8), (T9) outputValue(outputName9),
@@ -1362,7 +1362,7 @@ public class MLResults {
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12, String outputName13, String outputName14, String outputName15,
 			String outputName16) {
-		return new Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(
+		return new Tuple16<>(
 				(T1) outputValue(outputName1), (T2) outputValue(outputName2), (T3) outputValue(outputName3),
 				(T4) outputValue(outputName4), (T5) outputValue(outputName5), (T6) outputValue(outputName6),
 				(T7) outputValue(outputName7), (T8) outputValue(outputName8), (T9) outputValue(outputName9),
@@ -1450,7 +1450,7 @@ public class MLResults {
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12, String outputName13, String outputName14, String outputName15,
 			String outputName16, String outputName17) {
-		return new Tuple17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>(
+		return new Tuple17<>(
 				(T1) outputValue(outputName1), (T2) outputValue(outputName2), (T3) outputValue(outputName3),
 				(T4) outputValue(outputName4), (T5) outputValue(outputName5), (T6) outputValue(outputName6),
 				(T7) outputValue(outputName7), (T8) outputValue(outputName8), (T9) outputValue(outputName9),
@@ -1542,7 +1542,7 @@ public class MLResults {
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12, String outputName13, String outputName14, String outputName15,
 			String outputName16, String outputName17, String outputName18) {
-		return new Tuple18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>(
+		return new Tuple18<>(
 				(T1) outputValue(outputName1), (T2) outputValue(outputName2), (T3) outputValue(outputName3),
 				(T4) outputValue(outputName4), (T5) outputValue(outputName5), (T6) outputValue(outputName6),
 				(T7) outputValue(outputName7), (T8) outputValue(outputName8), (T9) outputValue(outputName9),
@@ -1638,7 +1638,7 @@ public class MLResults {
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12, String outputName13, String outputName14, String outputName15,
 			String outputName16, String outputName17, String outputName18, String outputName19) {
-		return new Tuple19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>(
+		return new Tuple19<>(
 				(T1) outputValue(outputName1), (T2) outputValue(outputName2), (T3) outputValue(outputName3),
 				(T4) outputValue(outputName4), (T5) outputValue(outputName5), (T6) outputValue(outputName6),
 				(T7) outputValue(outputName7), (T8) outputValue(outputName8), (T9) outputValue(outputName9),
@@ -1739,7 +1739,7 @@ public class MLResults {
 			String outputName6, String outputName7, String outputName8, String outputName9, String outputName10,
 			String outputName11, String outputName12, String outputName13, String outputName14, String outputName15,
 			String outputName16, String outputName17, String outputName18, String outputName19, String outputName20) {
-		return new Tuple20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>(
+		return new Tuple20<>(
 				(T1) outputValue(outputName1), (T2) outputValue(outputName2), (T3) outputValue(outputName3),
 				(T4) outputValue(outputName4), (T5) outputValue(outputName5), (T6) outputValue(outputName6),
 				(T7) outputValue(outputName7), (T8) outputValue(outputName8), (T9) outputValue(outputName9),
@@ -1845,7 +1845,7 @@ public class MLResults {
 			String outputName11, String outputName12, String outputName13, String outputName14, String outputName15,
 			String outputName16, String outputName17, String outputName18, String outputName19, String outputName20,
 			String outputName21) {
-		return new Tuple21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(
+		return new Tuple21<>(
 				(T1) outputValue(outputName1), (T2) outputValue(outputName2), (T3) outputValue(outputName3),
 				(T4) outputValue(outputName4), (T5) outputValue(outputName5), (T6) outputValue(outputName6),
 				(T7) outputValue(outputName7), (T8) outputValue(outputName8), (T9) outputValue(outputName9),
@@ -1955,7 +1955,7 @@ public class MLResults {
 			String outputName11, String outputName12, String outputName13, String outputName14, String outputName15,
 			String outputName16, String outputName17, String outputName18, String outputName19, String outputName20,
 			String outputName21, String outputName22) {
-		return new Tuple22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(
+		return new Tuple22<>(
 				(T1) outputValue(outputName1), (T2) outputValue(outputName2), (T3) outputValue(outputName3),
 				(T4) outputValue(outputName4), (T5) outputValue(outputName5), (T6) outputValue(outputName6),
 				(T7) outputValue(outputName7), (T8) outputValue(outputName8), (T9) outputValue(outputName9),

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/mlcontext/ProjectInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/ProjectInfo.java b/src/main/java/org/apache/sysml/api/mlcontext/ProjectInfo.java
index 9af6696..917fc7a 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/ProjectInfo.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/ProjectInfo.java
@@ -57,7 +57,7 @@ public class ProjectInfo {
 			systemMlJar = new JarFile(path);
 			Manifest manifest = systemMlJar.getManifest();
 			Attributes mainAttributes = manifest.getMainAttributes();
-			properties = new TreeMap<String, String>();
+			properties = new TreeMap<>();
 			for (Object key : mainAttributes.keySet()) {
 				String value = mainAttributes.getValue((Name) key);
 				properties.put(key.toString(), value);

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/api/mlcontext/Script.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/Script.java b/src/main/java/org/apache/sysml/api/mlcontext/Script.java
index fb7fc41..0f08cbe 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/Script.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/Script.java
@@ -57,23 +57,23 @@ public class Script {
 	/**
 	 * All inputs (input parameters ($) and input variables).
 	 */
-	private Map<String, Object> inputs = new LinkedHashMap<String, Object>();
+	private Map<String, Object> inputs = new LinkedHashMap<>();
 	/**
 	 * The input parameters ($).
 	 */
-	private Map<String, Object> inputParameters = new LinkedHashMap<String, Object>();
+	private Map<String, Object> inputParameters = new LinkedHashMap<>();
 	/**
 	 * The input variables.
 	 */
-	private Set<String> inputVariables = new LinkedHashSet<String>();
+	private Set<String> inputVariables = new LinkedHashSet<>();
 	/**
 	 * The input matrix or frame metadata if present.
 	 */
-	private Map<String, Metadata> inputMetadata = new LinkedHashMap<String, Metadata>();
+	private Map<String, Metadata> inputMetadata = new LinkedHashMap<>();
 	/**
 	 * The output variables.
 	 */
-	private Set<String> outputVariables = new LinkedHashSet<String>();
+	private Set<String> outputVariables = new LinkedHashSet<>();
 	/**
 	 * The symbol table containing the data associated with variables.
 	 */
@@ -332,14 +332,14 @@ public class Script {
 
 		MLContextUtil.checkInputValueType(name, value);
 		if (inputs == null) {
-			inputs = new LinkedHashMap<String, Object>();
+			inputs = new LinkedHashMap<>();
 		}
 		inputs.put(name, value);
 
 		if (name.startsWith("$")) {
 			MLContextUtil.checkInputParameterType(name, value);
 			if (inputParameters == null) {
-				inputParameters = new LinkedHashMap<String, Object>();
+				inputParameters = new LinkedHashMap<>();
 			}
 			inputParameters.put(name, value);
 		} else {

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/conf/CompilerConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/conf/CompilerConfig.java b/src/main/java/org/apache/sysml/conf/CompilerConfig.java
index 4fc7765..9dba923 100644
--- a/src/main/java/org/apache/sysml/conf/CompilerConfig.java
+++ b/src/main/java/org/apache/sysml/conf/CompilerConfig.java
@@ -86,7 +86,7 @@ public class CompilerConfig
 	private HashMap<ConfigType, Integer> _imap = null;
 	
 	public CompilerConfig() {
-		_bmap = new HashMap<ConfigType, Boolean>();
+		_bmap = new HashMap<>();
 		_bmap.put(ConfigType.PARALLEL_CP_READ_TEXTFORMATS, FLAG_PARREADWRITE_TEXT);
 		_bmap.put(ConfigType.PARALLEL_CP_WRITE_TEXTFORMATS, FLAG_PARREADWRITE_TEXT);
 		_bmap.put(ConfigType.PARALLEL_CP_READ_BINARYFORMATS, FLAG_PARREADWRITE_BINARY);
@@ -103,7 +103,7 @@ public class CompilerConfig
 		_bmap.put(ConfigType.MLCONTEXT, false);
 		_bmap.put(ConfigType.CODEGEN_ENABLED, false);
 		
-		_imap = new HashMap<CompilerConfig.ConfigType, Integer>();
+		_imap = new HashMap<>();
 		_imap.put(ConfigType.BLOCK_SIZE, OptimizerUtils.DEFAULT_BLOCKSIZE);
 		_imap.put(ConfigType.OPT_LEVEL, OptimizerUtils.DEFAULT_OPTLEVEL.ordinal());
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/conf/ConfigurationManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/conf/ConfigurationManager.java b/src/main/java/org/apache/sysml/conf/ConfigurationManager.java
index 27ab8b4..0ddc78a 100644
--- a/src/main/java/org/apache/sysml/conf/ConfigurationManager.java
+++ b/src/main/java/org/apache/sysml/conf/ConfigurationManager.java
@@ -200,13 +200,13 @@ public class ConfigurationManager
 	
 	private static class ThreadLocalDMLConfig extends ThreadLocal<DMLConfig> {
 		@Override 
-        protected DMLConfig initialValue() { 
+		protected DMLConfig initialValue() { 
 			//currently initialize by reference to avoid unnecessary deep copy via clone.
-	        if( _dmlconf != null )
-	        	return _dmlconf; 
-	        return null;
-        }
-    }
+			if( _dmlconf != null )
+				return _dmlconf; 
+			return null;
+		}
+	}
 	
 	private static class ThreadLocalCompilerConfig extends ThreadLocal<CompilerConfig> {
 		@Override 
@@ -215,5 +215,5 @@ public class ConfigurationManager
 				return _cconf.clone();
 			return null;
 		}
-    };
+	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/conf/DMLConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/conf/DMLConfig.java b/src/main/java/org/apache/sysml/conf/DMLConfig.java
index 9835b4d..6eaa52e 100644
--- a/src/main/java/org/apache/sysml/conf/DMLConfig.java
+++ b/src/main/java/org/apache/sysml/conf/DMLConfig.java
@@ -111,7 +111,7 @@ public class DMLConfig
 	
 	static
 	{
-		_defaultVals = new HashMap<String, String>();
+		_defaultVals = new HashMap<>();
 		_defaultVals.put(LOCAL_TMP_DIR,          "/tmp/systemml" );
 		_defaultVals.put(SCRATCH_SPACE,          "scratch_space" );
 		_defaultVals.put(OPTIMIZATION_LEVEL,     String.valueOf(OptimizerUtils.DEFAULT_OPTLEVEL.ordinal()) );
@@ -303,7 +303,7 @@ public class DMLConfig
 	 */
 	public Map<String, String> getCustomMRConfig()
 	{
-		HashMap<String, String> ret = new HashMap<String, String>();
+		HashMap<String, String> ret = new HashMap<>();
 	
 		//check for non-existing config xml tree
 		if( _xmlRoot == null )

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/debug/DMLBreakpointManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/debug/DMLBreakpointManager.java b/src/main/java/org/apache/sysml/debug/DMLBreakpointManager.java
index 2ec3744..5f32620 100644
--- a/src/main/java/org/apache/sysml/debug/DMLBreakpointManager.java
+++ b/src/main/java/org/apache/sysml/debug/DMLBreakpointManager.java
@@ -31,7 +31,7 @@ import org.apache.sysml.runtime.instructions.cp.BreakPointInstruction.BPINSTRUCT
 public class DMLBreakpointManager {
 	
 	/** Map between DML script line numbers and breakpoint instructions */
-	private static TreeMap<Integer, BreakPointInstruction> breakpoints = new TreeMap<Integer, BreakPointInstruction>();
+	private static TreeMap<Integer, BreakPointInstruction> breakpoints = new TreeMap<>();
 	
 	
 	/**

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/debug/DMLDebuggerProgramInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/debug/DMLDebuggerProgramInfo.java b/src/main/java/org/apache/sysml/debug/DMLDebuggerProgramInfo.java
index 92a9495..cf9ca44 100644
--- a/src/main/java/org/apache/sysml/debug/DMLDebuggerProgramInfo.java
+++ b/src/main/java/org/apache/sysml/debug/DMLDebuggerProgramInfo.java
@@ -56,7 +56,7 @@ public class DMLDebuggerProgramInfo
 	 * Constructor for DMLDebuggerProgramInfo class.
 	 */
 	public DMLDebuggerProgramInfo() {
-		disassembler = new TreeMap<Integer, ArrayList<Instruction>>();
+		disassembler = new TreeMap<>();
 	}
 	
 	/** 
@@ -236,7 +236,7 @@ public class DMLDebuggerProgramInfo
 	 */
 	public void setDMLInstMap() 
 	{
-		disassembler = new TreeMap<Integer, ArrayList<Instruction>>();		
+		disassembler = new TreeMap<>();
 		if (this.rtprog != null)  
 		{
 			//Functions: For each function program block (if any), get instructions corresponding to each line number

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/debug/DebugState.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/debug/DebugState.java b/src/main/java/org/apache/sysml/debug/DebugState.java
index 0294d7f..ed1bea3 100644
--- a/src/main/java/org/apache/sysml/debug/DebugState.java
+++ b/src/main/java/org/apache/sysml/debug/DebugState.java
@@ -29,7 +29,7 @@ public class DebugState
 {
 	
 	public String [] dmlScript;
-	public Stack<DMLFrame> callStack = new Stack<DMLFrame>();
+	public Stack<DMLFrame> callStack = new Stack<>();
 	public DMLProgramCounter pc = null, prevPC = null;
 	public LocalVariableMap frameVariables=null;
 	public String dbCommand=null;

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/AggBinaryOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/AggBinaryOp.java b/src/main/java/org/apache/sysml/hops/AggBinaryOp.java
index 11a2399..cfa99a4 100644
--- a/src/main/java/org/apache/sysml/hops/AggBinaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/AggBinaryOp.java
@@ -80,7 +80,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop
 		TSMM2,    //transpose-self matrix multiplication, 2-pass w/o shuffle (sp)
 		ZIPMM,    //zip matrix multiplication (sp)
 		MM        //in-memory matrix multiplication (cp)
-	};
+	}
 	
 	public enum SparkAggType{
 		NONE,

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/BinaryOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/BinaryOp.java b/src/main/java/org/apache/sysml/hops/BinaryOp.java
index cd1f715..97ec655 100644
--- a/src/main/java/org/apache/sysml/hops/BinaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/BinaryOp.java
@@ -82,7 +82,7 @@ public class BinaryOp extends Hop
 		MR_RAPPEND, //reduce-only append (output must have at most one column block)
 		MR_GAPPEND, //map-reduce general case append (map-extend, aggregate)
 		SP_GAlignedAppend // special case for general case in Spark where left.getCols() % left.getColsPerBlock() == 0
-	};
+	}
 	
 	private enum MMBinaryMethod {
 		CP_BINARY, //(implicitly selected for CP) 
@@ -91,7 +91,7 @@ public class BinaryOp extends Hop
 		MR_BINARY_OUTER_M,
 		MR_BINARY_OUTER_R, //only vv 
 		MR_BINARY_UAGG_CHAIN, //(mr/spark)
-	};
+	}
 	
 	private BinaryOp() {
 		//default constructor for clone

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
index c5cf667..849b694 100644
--- a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
+++ b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
@@ -343,8 +343,8 @@ public class ConvolutionOp extends Hop  implements MultiThreadedHop
 	@Override
 	protected double computeIntermediateMemEstimate( long ignoreDim1, long ignoreDim2, long ignoreNnz )
 	{	
-		ArrayList<IntermediateDimensions> gpuIntermediates = new ArrayList<IntermediateDimensions>();
-		ArrayList<IntermediateDimensions> cpIntermediates = new ArrayList<IntermediateDimensions>();
+		ArrayList<IntermediateDimensions> gpuIntermediates = new ArrayList<>();
+		ArrayList<IntermediateDimensions> cpIntermediates = new ArrayList<>();
 		if(getOp() == ConvOp.DIRECT_CONV2D) {
 			// Assumption: To compile a GPU conv2d operator, following should fit on the GPU:
 			// 1. output in dense format (i.e. computeOutputMemEstimate) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/DataGenOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/DataGenOp.java b/src/main/java/org/apache/sysml/hops/DataGenOp.java
index eb04ed3..69f35ed 100644
--- a/src/main/java/org/apache/sysml/hops/DataGenOp.java
+++ b/src/main/java/org/apache/sysml/hops/DataGenOp.java
@@ -60,7 +60,7 @@ public class DataGenOp extends Hop implements MultiThreadedHop
 	 * i.e., getInput().get(_paramIndexMap.get(parameterName)) refers to the Hop
 	 * that is associated with parameterName.
 	 */
-	private HashMap<String, Integer> _paramIndexMap = new HashMap<String, Integer>();
+	private HashMap<String, Integer> _paramIndexMap = new HashMap<>();
 		
 
 	/** target identifier which will hold the random object */
@@ -160,7 +160,7 @@ public class DataGenOp extends Hop implements MultiThreadedHop
 
 		ExecType et = optFindExecType();
 		
-		HashMap<String, Lop> inputLops = new HashMap<String, Lop>();
+		HashMap<String, Lop> inputLops = new HashMap<>();
 		for (Entry<String, Integer> cur : _paramIndexMap.entrySet()) {
 			if( cur.getKey().equals(DataExpression.RAND_ROWS) && _dim1>0 )
 				inputLops.put(cur.getKey(), new LiteralOp(_dim1).constructLops());

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/DataOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/DataOp.java b/src/main/java/org/apache/sysml/hops/DataOp.java
index f410210..01e4878 100644
--- a/src/main/java/org/apache/sysml/hops/DataOp.java
+++ b/src/main/java/org/apache/sysml/hops/DataOp.java
@@ -58,7 +58,7 @@ public class DataOp extends Hop
 	 * i.e., getInput().get(_paramIndexMap.get(parameterName)) refers to the Hop
 	 * that is associated with parameterName.
 	 */
-	private HashMap<String, Integer> _paramIndexMap = new HashMap<String, Integer>();
+	private HashMap<String, Integer> _paramIndexMap = new HashMap<>();
 
 	private DataOp() {
 		//default constructor for clone
@@ -257,7 +257,7 @@ public class DataOp extends Hop
 		Lop l = null;
 		
 		// construct lops for all input parameters
-		HashMap<String, Lop> inputLops = new HashMap<String, Lop>();
+		HashMap<String, Lop> inputLops = new HashMap<>();
 		for (Entry<String, Integer> cur : _paramIndexMap.entrySet()) {
 			inputLops.put(cur.getKey(), getInput().get(cur.getValue())
 					.constructLops());

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/FunctionOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/FunctionOp.java b/src/main/java/org/apache/sysml/hops/FunctionOp.java
index 62872ea..570030f 100644
--- a/src/main/java/org/apache/sysml/hops/FunctionOp.java
+++ b/src/main/java/org/apache/sysml/hops/FunctionOp.java
@@ -236,7 +236,7 @@ public class FunctionOp extends Hop
 		ExecType et = optFindExecType();
 		
 		//construct input lops (recursive)
-		ArrayList<Lop> tmp = new ArrayList<Lop>();
+		ArrayList<Lop> tmp = new ArrayList<>();
 		for( Hop in : getInput() )
 			tmp.add( in.constructLops() );
 		 

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/Hop.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/Hop.java b/src/main/java/org/apache/sysml/hops/Hop.java
index 165a831..6547e2f 100644
--- a/src/main/java/org/apache/sysml/hops/Hop.java
+++ b/src/main/java/org/apache/sysml/hops/Hop.java
@@ -915,7 +915,7 @@ public abstract class Hop implements ParseInfo
 		if( !force )
 			resetVisitStatus(hops);
 		else {
-			HashSet<Long> memo = new HashSet<Long>();
+			HashSet<Long> memo = new HashSet<>();
 			if( hops != null )
 				for( Hop hopRoot : hops )
 					hopRoot.resetVisitStatusForced(memo);
@@ -1075,12 +1075,12 @@ public abstract class Hop implements ParseInfo
 		MINUS_NZ, //sparse-safe minus: X-(mean*ppred(X,0,!=))
 		LOG_NZ, //sparse-safe log; ppred(X,0,"!=")*log(X,0.5)
 		MINUS1_MULT, //1-X*Y
-	};
+	}
 
 	// Operations that require 3 operands
 	public enum OpOp3 {
 		QUANTILE, INTERQUANTILE, CTABLE, CENTRALMOMENT, COVARIANCE, PLUS_MULT, MINUS_MULT
-	};
+	}
 	
 	// Operations that require 4 operands
 	public enum OpOp4 {
@@ -1089,7 +1089,7 @@ public abstract class Hop implements ParseInfo
 		WDIVMM, //weighted divide mm
 		WCEMM, //weighted cross entropy mm
 		WUMM //weighted unary mm
-	};
+	}
 	
 	// Operations that require a variable number of operands
 	public enum MultiInputOp {
@@ -1098,7 +1098,7 @@ public abstract class Hop implements ParseInfo
 	
 	public enum AggOp {
 		SUM, SUM_SQ, MIN, MAX, TRACE, PROD, MEAN, VAR, MAXINDEX, MININDEX
-	};
+	}
 
 	public enum ReOrgOp {
 		TRANSPOSE, DIAG, RESHAPE, SORT, REV
@@ -1106,39 +1106,39 @@ public abstract class Hop implements ParseInfo
 		//create incorrect plans (now we try to infer it for memory estimates
 		//and rewrites but the final choice is made during runtime)
 		//DIAG_V2M, DIAG_M2V, 
-	};
+	}
 	
 	public enum ConvOp {
 		MAX_POOLING, MAX_POOLING_BACKWARD,
 		DIRECT_CONV2D, DIRECT_CONV2D_BACKWARD_FILTER, DIRECT_CONV2D_BACKWARD_DATA,
 		BIAS_ADD, BIAS_MULTIPLY
-	};
+	}
 	
 	public enum DataGenMethod {
 		RAND, SEQ, SINIT, SAMPLE, INVALID
-	};
+	}
 
 	public enum ParamBuiltinOp {
 		INVALID, CDF, INVCDF, GROUPEDAGG, RMEMPTY, REPLACE, REXPAND, 
 		TRANSFORMAPPLY, TRANSFORMDECODE, TRANSFORMCOLMAP, TRANSFORMMETA,
 		TOSTRING
-	};
+	}
 
 	public enum FileFormatTypes {
 		TEXT, BINARY, MM, CSV
-	};
+	}
 
 	public enum DataOpTypes {
 		PERSISTENTREAD, PERSISTENTWRITE, TRANSIENTREAD, TRANSIENTWRITE, FUNCTIONOUTPUT
-	};
+	}
 
 	public enum Direction {
 		RowCol, Row, Col
-	};
+	}
 
 	protected static final HashMap<DataOpTypes, org.apache.sysml.lops.Data.OperationTypes> HopsData2Lops;
 	static {
-		HopsData2Lops = new HashMap<Hop.DataOpTypes, org.apache.sysml.lops.Data.OperationTypes>();
+		HopsData2Lops = new HashMap<>();
 		HopsData2Lops.put(DataOpTypes.PERSISTENTREAD, org.apache.sysml.lops.Data.OperationTypes.READ);
 		HopsData2Lops.put(DataOpTypes.PERSISTENTWRITE, org.apache.sysml.lops.Data.OperationTypes.WRITE);
 		HopsData2Lops.put(DataOpTypes.TRANSIENTWRITE, org.apache.sysml.lops.Data.OperationTypes.WRITE);
@@ -1147,7 +1147,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.AggOp, org.apache.sysml.lops.Aggregate.OperationTypes> HopsAgg2Lops;
 	static {
-		HopsAgg2Lops = new HashMap<Hop.AggOp, org.apache.sysml.lops.Aggregate.OperationTypes>();
+		HopsAgg2Lops = new HashMap<>();
 		HopsAgg2Lops.put(AggOp.SUM, org.apache.sysml.lops.Aggregate.OperationTypes.KahanSum);
 		HopsAgg2Lops.put(AggOp.SUM_SQ, org.apache.sysml.lops.Aggregate.OperationTypes.KahanSumSq);
 		HopsAgg2Lops.put(AggOp.TRACE, org.apache.sysml.lops.Aggregate.OperationTypes.KahanTrace);
@@ -1162,7 +1162,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<ReOrgOp, org.apache.sysml.lops.Transform.OperationTypes> HopsTransf2Lops;
 	static {
-		HopsTransf2Lops = new HashMap<ReOrgOp, org.apache.sysml.lops.Transform.OperationTypes>();
+		HopsTransf2Lops = new HashMap<>();
 		HopsTransf2Lops.put(ReOrgOp.TRANSPOSE, org.apache.sysml.lops.Transform.OperationTypes.Transpose);
 		HopsTransf2Lops.put(ReOrgOp.REV, org.apache.sysml.lops.Transform.OperationTypes.Rev);
 		HopsTransf2Lops.put(ReOrgOp.DIAG, org.apache.sysml.lops.Transform.OperationTypes.Diag);
@@ -1173,7 +1173,7 @@ public abstract class Hop implements ParseInfo
 	
 	protected static final HashMap<ConvOp, org.apache.sysml.lops.ConvolutionTransform.OperationTypes> HopsConv2Lops;
 	static {
-		HopsConv2Lops = new HashMap<ConvOp, org.apache.sysml.lops.ConvolutionTransform.OperationTypes>();
+		HopsConv2Lops = new HashMap<>();
 		HopsConv2Lops.put(ConvOp.MAX_POOLING, org.apache.sysml.lops.ConvolutionTransform.OperationTypes.MAX_POOLING);
 		HopsConv2Lops.put(ConvOp.MAX_POOLING_BACKWARD, org.apache.sysml.lops.ConvolutionTransform.OperationTypes.MAX_POOLING_BACKWARD);
 		HopsConv2Lops.put(ConvOp.DIRECT_CONV2D, org.apache.sysml.lops.ConvolutionTransform.OperationTypes.DIRECT_CONV2D);
@@ -1185,7 +1185,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.Direction, org.apache.sysml.lops.PartialAggregate.DirectionTypes> HopsDirection2Lops;
 	static {
-		HopsDirection2Lops = new HashMap<Hop.Direction, org.apache.sysml.lops.PartialAggregate.DirectionTypes>();
+		HopsDirection2Lops = new HashMap<>();
 		HopsDirection2Lops.put(Direction.RowCol, org.apache.sysml.lops.PartialAggregate.DirectionTypes.RowCol);
 		HopsDirection2Lops.put(Direction.Col, org.apache.sysml.lops.PartialAggregate.DirectionTypes.Col);
 		HopsDirection2Lops.put(Direction.Row, org.apache.sysml.lops.PartialAggregate.DirectionTypes.Row);
@@ -1194,7 +1194,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.OpOp2, Binary.OperationTypes> HopsOpOp2LopsB;
 	static {
-		HopsOpOp2LopsB = new HashMap<Hop.OpOp2, Binary.OperationTypes>();
+		HopsOpOp2LopsB = new HashMap<>();
 		HopsOpOp2LopsB.put(OpOp2.PLUS, Binary.OperationTypes.ADD);
 		HopsOpOp2LopsB.put(OpOp2.MINUS, Binary.OperationTypes.SUBTRACT);
 		HopsOpOp2LopsB.put(OpOp2.MULT, Binary.OperationTypes.MULTIPLY);
@@ -1219,8 +1219,8 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.OpOp2, BinaryScalar.OperationTypes> HopsOpOp2LopsBS;
 	static {
-		HopsOpOp2LopsBS = new HashMap<Hop.OpOp2, BinaryScalar.OperationTypes>();
-		HopsOpOp2LopsBS.put(OpOp2.PLUS, BinaryScalar.OperationTypes.ADD);	
+		HopsOpOp2LopsBS = new HashMap<>();
+		HopsOpOp2LopsBS.put(OpOp2.PLUS, BinaryScalar.OperationTypes.ADD);
 		HopsOpOp2LopsBS.put(OpOp2.MINUS, BinaryScalar.OperationTypes.SUBTRACT);
 		HopsOpOp2LopsBS.put(OpOp2.MULT, BinaryScalar.OperationTypes.MULTIPLY);
 		HopsOpOp2LopsBS.put(OpOp2.DIV, BinaryScalar.OperationTypes.DIVIDE);
@@ -1243,7 +1243,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.OpOp2, org.apache.sysml.lops.Unary.OperationTypes> HopsOpOp2LopsU;
 	static {
-		HopsOpOp2LopsU = new HashMap<Hop.OpOp2, org.apache.sysml.lops.Unary.OperationTypes>();
+		HopsOpOp2LopsU = new HashMap<>();
 		HopsOpOp2LopsU.put(OpOp2.PLUS, org.apache.sysml.lops.Unary.OperationTypes.ADD);
 		HopsOpOp2LopsU.put(OpOp2.MINUS, org.apache.sysml.lops.Unary.OperationTypes.SUBTRACT);
 		HopsOpOp2LopsU.put(OpOp2.MULT, org.apache.sysml.lops.Unary.OperationTypes.MULTIPLY);
@@ -1269,7 +1269,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.OpOp1, org.apache.sysml.lops.Unary.OperationTypes> HopsOpOp1LopsU;
 	static {
-		HopsOpOp1LopsU = new HashMap<Hop.OpOp1, org.apache.sysml.lops.Unary.OperationTypes>();
+		HopsOpOp1LopsU = new HashMap<>();
 		HopsOpOp1LopsU.put(OpOp1.NOT, org.apache.sysml.lops.Unary.OperationTypes.NOT);
 		HopsOpOp1LopsU.put(OpOp1.ABS, org.apache.sysml.lops.Unary.OperationTypes.ABS);
 		HopsOpOp1LopsU.put(OpOp1.SIN, org.apache.sysml.lops.Unary.OperationTypes.SIN);
@@ -1306,7 +1306,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.OpOp1, org.apache.sysml.lops.UnaryCP.OperationTypes> HopsOpOp1LopsUS;
 	static {
-		HopsOpOp1LopsUS = new HashMap<Hop.OpOp1, org.apache.sysml.lops.UnaryCP.OperationTypes>();
+		HopsOpOp1LopsUS = new HashMap<>();
 		HopsOpOp1LopsUS.put(OpOp1.NOT, org.apache.sysml.lops.UnaryCP.OperationTypes.NOT);
 		HopsOpOp1LopsUS.put(OpOp1.ABS, org.apache.sysml.lops.UnaryCP.OperationTypes.ABS);
 		HopsOpOp1LopsUS.put(OpOp1.SIN, org.apache.sysml.lops.UnaryCP.OperationTypes.SIN);
@@ -1345,13 +1345,13 @@ public abstract class Hop implements ParseInfo
 	 */
 	protected static final HashMap<MultiInputOp, MultipleCP.OperationType> MultipleOperandOperationHopTypeToLopType;
 	static {
-		MultipleOperandOperationHopTypeToLopType = new HashMap<MultiInputOp, MultipleCP.OperationType>();
+		MultipleOperandOperationHopTypeToLopType = new HashMap<>();
 		MultipleOperandOperationHopTypeToLopType.put(MultiInputOp.PRINTF, MultipleCP.OperationType.PRINTF);
 	}
 
 	protected static final HashMap<Hop.OpOp1, String> HopsOpOp12String;
 	static {
-		HopsOpOp12String = new HashMap<OpOp1, String>();	
+		HopsOpOp12String = new HashMap<>();
 		HopsOpOp12String.put(OpOp1.ABS, "abs");
 		HopsOpOp12String.put(OpOp1.CAST_AS_SCALAR, "castAsScalar");
 		HopsOpOp12String.put(OpOp1.COS, "cos");
@@ -1384,7 +1384,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.ParamBuiltinOp, org.apache.sysml.lops.ParameterizedBuiltin.OperationTypes> HopsParameterizedBuiltinLops;
 	static {
-		HopsParameterizedBuiltinLops = new HashMap<Hop.ParamBuiltinOp, org.apache.sysml.lops.ParameterizedBuiltin.OperationTypes>();
+		HopsParameterizedBuiltinLops = new HashMap<>();
 		HopsParameterizedBuiltinLops.put(ParamBuiltinOp.CDF, org.apache.sysml.lops.ParameterizedBuiltin.OperationTypes.CDF);
 		HopsParameterizedBuiltinLops.put(ParamBuiltinOp.INVCDF, org.apache.sysml.lops.ParameterizedBuiltin.OperationTypes.INVCDF);
 		HopsParameterizedBuiltinLops.put(ParamBuiltinOp.RMEMPTY, org.apache.sysml.lops.ParameterizedBuiltin.OperationTypes.RMEMPTY);
@@ -1399,7 +1399,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.OpOp2, String> HopsOpOp2String;
 	static {
-		HopsOpOp2String = new HashMap<Hop.OpOp2, String>();
+		HopsOpOp2String = new HashMap<>();
 		HopsOpOp2String.put(OpOp2.PLUS, "+");
 		HopsOpOp2String.put(OpOp2.MINUS, "-");
 		HopsOpOp2String.put(OpOp2.MINUS_NZ, "-nz");
@@ -1440,7 +1440,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.OpOp3, String> HopsOpOp3String;
 	static {
-		HopsOpOp3String = new HashMap<Hop.OpOp3, String>();
+		HopsOpOp3String = new HashMap<>();
 		HopsOpOp3String.put(OpOp3.QUANTILE, "quantile");
 		HopsOpOp3String.put(OpOp3.INTERQUANTILE, "interquantile");
 		HopsOpOp3String.put(OpOp3.CTABLE, "ctable");
@@ -1452,7 +1452,7 @@ public abstract class Hop implements ParseInfo
 	
 	protected static final HashMap<Hop.OpOp4, String> HopsOpOp4String;
 	static {
-		HopsOpOp4String = new HashMap<Hop.OpOp4, String>();
+		HopsOpOp4String = new HashMap<>();
 		HopsOpOp4String.put(OpOp4.WSLOSS,   "wsloss");
 		HopsOpOp4String.put(OpOp4.WSIGMOID, "wsigmoid");
 		HopsOpOp4String.put(OpOp4.WCEMM,    "wcemm");
@@ -1462,7 +1462,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.Direction, String> HopsDirection2String;
 	static {
-		HopsDirection2String = new HashMap<Hop.Direction, String>();
+		HopsDirection2String = new HashMap<>();
 		HopsDirection2String.put(Direction.RowCol, "RC");
 		HopsDirection2String.put(Direction.Col, "C");
 		HopsDirection2String.put(Direction.Row, "R");
@@ -1470,7 +1470,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.AggOp, String> HopsAgg2String;
 	static {
-		HopsAgg2String = new HashMap<Hop.AggOp, String>();
+		HopsAgg2String = new HashMap<>();
 		HopsAgg2String.put(AggOp.SUM, "+");
 		HopsAgg2String.put(AggOp.SUM_SQ, "sq+");
 		HopsAgg2String.put(AggOp.PROD, "*");
@@ -1485,7 +1485,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<Hop.ReOrgOp, String> HopsTransf2String;
 	static {
-		HopsTransf2String = new HashMap<ReOrgOp, String>();
+		HopsTransf2String = new HashMap<>();
 		HopsTransf2String.put(ReOrgOp.TRANSPOSE, "t");
 		HopsTransf2String.put(ReOrgOp.DIAG, "diag");
 		HopsTransf2String.put(ReOrgOp.RESHAPE, "rshape");
@@ -1494,7 +1494,7 @@ public abstract class Hop implements ParseInfo
 
 	protected static final HashMap<DataOpTypes, String> HopsData2String;
 	static {
-		HopsData2String = new HashMap<Hop.DataOpTypes, String>();
+		HopsData2String = new HashMap<>();
 		HopsData2String.put(DataOpTypes.PERSISTENTREAD, "PRead");
 		HopsData2String.put(DataOpTypes.PERSISTENTWRITE, "PWrite");
 		HopsData2String.put(DataOpTypes.TRANSIENTWRITE, "TWrite");
@@ -1834,8 +1834,8 @@ public abstract class Hop implements ParseInfo
 		_updateType = that._updateType;
 
 		//no copy of lops (regenerated)
-		_parent = new ArrayList<Hop>();
-		_input = new ArrayList<Hop>();
+		_parent = new ArrayList<>();
+		_input = new ArrayList<>();
 		_lops = null;
 		
 		_etype = that._etype;

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/IndexingOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/IndexingOp.java b/src/main/java/org/apache/sysml/hops/IndexingOp.java
index fa67618..0aa6d03 100644
--- a/src/main/java/org/apache/sysml/hops/IndexingOp.java
+++ b/src/main/java/org/apache/sysml/hops/IndexingOp.java
@@ -45,7 +45,7 @@ public class IndexingOp extends Hop
 		CP_RIX, //in-memory range index
 		MR_RIX, //general case range reindex
 		MR_VRIX, //vector (row/col) range index
-	};
+	}
 	
 	
 	private IndexingOp() {

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/MemoTable.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/MemoTable.java b/src/main/java/org/apache/sysml/hops/MemoTable.java
index 94368ee..48ecf66 100644
--- a/src/main/java/org/apache/sysml/hops/MemoTable.java
+++ b/src/main/java/org/apache/sysml/hops/MemoTable.java
@@ -38,7 +38,7 @@ public class MemoTable
 	
 	public MemoTable()
 	{
-		_memo = new HashMap<Long, MatrixCharacteristics>();
+		_memo = new HashMap<>();
 	}
 
 	public void init( ArrayList<Hop> hops, RecompileStatus status)

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
index 0215100..e44e439 100644
--- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
+++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
@@ -248,7 +248,7 @@ public class OptimizerUtils
 		O3_LOCAL_RESOURCE_TIME_MEMORY,
 		O4_GLOBAL_TIME_MEMORY,
 		O5_DEBUG_MODE,
-	};
+	}
 		
 	public static OptimizationLevel getOptLevel() {
 		int optlevel = ConfigurationManager.getCompilerConfig().getInt(ConfigType.OPT_LEVEL);
@@ -1131,7 +1131,7 @@ public class OptimizerUtils
 			return defaultValue;
 		ForStatementBlock fsb = (ForStatementBlock) fpb.getStatementBlock();
 		try {
-			HashMap<Long,Long> memo = new HashMap<Long,Long>();
+			HashMap<Long,Long> memo = new HashMap<>();
 			long from = rEvalSimpleLongExpression(fsb.getFromHops().getInput().get(0), memo);
 			long to = rEvalSimpleLongExpression(fsb.getToHops().getInput().get(0), memo);
 			long increment = (fsb.getIncrementHops()==null) ? (from < to) ? 1 : -1 : 
@@ -1148,7 +1148,7 @@ public class OptimizerUtils
 			return defaultValue;
 		ForStatementBlock fsb = (ForStatementBlock) fpb.getStatementBlock();
 		try {
-			HashMap<Long,Long> memo = new HashMap<Long,Long>();
+			HashMap<Long,Long> memo = new HashMap<>();
 			long from = rEvalSimpleLongExpression(fsb.getFromHops().getInput().get(0), memo, vars);
 			long to = rEvalSimpleLongExpression(fsb.getToHops().getInput().get(0), memo, vars);
 			long increment = (fsb.getIncrementHops()==null) ? (from < to) ? 1 : -1 : 
@@ -1177,7 +1177,7 @@ public class OptimizerUtils
 		long ret = Long.MAX_VALUE;
 		
 		//for simplicity and robustness call double and cast.
-		HashMap<Long, Double> dvalMemo = new HashMap<Long, Double>();
+		HashMap<Long, Double> dvalMemo = new HashMap<>();
 		double tmp = rEvalSimpleDoubleExpression(root, dvalMemo);
 		if( tmp!=Double.MAX_VALUE )
 			ret = UtilFunctions.toLong( tmp );
@@ -1191,7 +1191,7 @@ public class OptimizerUtils
 		long ret = Long.MAX_VALUE;
 		
 		//for simplicity and robustness call double and cast.
-		HashMap<Long, Double> dvalMemo = new HashMap<Long, Double>();
+		HashMap<Long, Double> dvalMemo = new HashMap<>();
 		double tmp = rEvalSimpleDoubleExpression(root, dvalMemo, vars);
 		if( tmp!=Double.MAX_VALUE )
 			ret = UtilFunctions.toLong( tmp );

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java b/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java
index 2d3e256..b9b8649 100644
--- a/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java
+++ b/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java
@@ -74,7 +74,7 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop
 	 * i.e., getInput().get(_paramIndexMap.get(parameterName)) refers to the Hop
 	 * that is associated with parameterName.
 	 */
-	private HashMap<String, Integer> _paramIndexMap = new HashMap<String, Integer>();
+	private HashMap<String, Integer> _paramIndexMap = new HashMap<>();
 
 	private ParameterizedBuiltinOp() {
 		//default constructor for clone
@@ -170,7 +170,7 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop
 			return getLops();
 		
 		// construct lops for all input parameters
-		HashMap<String, Lop> inputlops = new HashMap<String, Lop>();
+		HashMap<String, Lop> inputlops = new HashMap<>();
 		for (Entry<String, Integer> cur : _paramIndexMap.entrySet())
 			inputlops.put(cur.getKey(), getInput().get(cur.getValue()).constructLops());
 
@@ -641,7 +641,7 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop
 					setLineNumbers(group2);
 					group2.getOutputParameters().setDimensions(rlen, clen, brlen, bclen, nnz);
 				
-					HashMap<String, Lop> inMap = new HashMap<String, Lop>();
+					HashMap<String, Lop> inMap = new HashMap<>();
 					inMap.put("target", group1);
 					inMap.put("offset", group2);
 					inMap.put("maxdim", lmaxdim);
@@ -726,7 +726,7 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop
 			Lop loffset = offsets.constructLops();
 			Lop lmaxdim = maxDim.constructLops();
 			
-			HashMap<String, Lop> inMap = new HashMap<String, Lop>();
+			HashMap<String, Lop> inMap = new HashMap<>();
 			inMap.put("target", linput);
 			inMap.put("offset", loffset);
 			inMap.put("maxdim", lmaxdim);

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/ReorgOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ReorgOp.java b/src/main/java/org/apache/sysml/hops/ReorgOp.java
index f0560d3..ef83253 100644
--- a/src/main/java/org/apache/sysml/hops/ReorgOp.java
+++ b/src/main/java/org/apache/sysml/hops/ReorgOp.java
@@ -331,7 +331,7 @@ public class ReorgOp extends Hop implements MultiThreadedHop
 					else
 					{
 						//small vector, use in-memory sort
-						ArrayList<Hop> sinputs = new ArrayList<Hop>();
+						ArrayList<Hop> sinputs = new ArrayList<>();
 						sinputs.add(vinput);
 						sinputs.add(new LiteralOp(1)); //by (always vector)
 						sinputs.add(desc);
@@ -341,7 +341,7 @@ public class ReorgOp extends Hop implements MultiThreadedHop
 						//explicitly construct CP lop; otherwise there is danger of infinite recursion if forced runtime platform.
 						voutput.setLops( constructCPOrSparkSortLop(vinput, sinputs.get(1), sinputs.get(2), sinputs.get(3), ExecType.CP, false) );
 						voutput.getLops().getOutputParameters().setDimensions(vinput.getDim1(), vinput.getDim2(), vinput.getRowsInBlock(), vinput.getColsInBlock(), vinput.getNnz());
-						setLops( voutput.constructLops() );								
+						setLops( voutput.constructLops() );
 					}
 					
 					//Step 3: Data permutation (only required for sorting data) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/UnaryOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/UnaryOp.java b/src/main/java/org/apache/sysml/hops/UnaryOp.java
index 46cabcc..94b33f8 100644
--- a/src/main/java/org/apache/sysml/hops/UnaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/UnaryOp.java
@@ -403,7 +403,7 @@ public class UnaryOp extends Hop implements MultiThreadedHop
 		
 		Lop X = input.constructLops();
 		Lop TEMP = X;
-		ArrayList<Lop> DATA = new ArrayList<Lop>();
+		ArrayList<Lop> DATA = new ArrayList<>();
 		int level = 0;
 		
 		//recursive preaggregation until aggregates fit into CP memory budget
@@ -479,7 +479,7 @@ public class UnaryOp extends Hop implements MultiThreadedHop
 		
 		Lop X = input.constructLops();
 		Lop TEMP = X;
-		ArrayList<Lop> DATA = new ArrayList<Lop>();
+		ArrayList<Lop> DATA = new ArrayList<>();
 		int level = 0;
 		
 		//recursive preaggregation until aggregates fit into CP memory budget

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/SpoofCompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/SpoofCompiler.java b/src/main/java/org/apache/sysml/hops/codegen/SpoofCompiler.java
index a521918..0e5e194 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/SpoofCompiler.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/SpoofCompiler.java
@@ -331,8 +331,7 @@ public class SpoofCompiler
 	public static Hop optimize( Hop root, boolean recompile ) throws DMLRuntimeException {
 		if( root == null )
 			return root;
-		
-		return optimize(new ArrayList<Hop>(
+		return optimize(new ArrayList<>(
 			Collections.singleton(root)), recompile).get(0);
 	}
 	
@@ -370,7 +369,7 @@ public class SpoofCompiler
 			//note: we do not use the hop visit status due to jumps over fused operators which would
 			//corrupt subsequent resets, leaving partial hops dags in visited status
 			HashMap<Long, Pair<Hop[],CNodeTpl>> cplans = new LinkedHashMap<>();
-			HashSet<Long> visited = new HashSet<Long>();
+			HashSet<Long> visited = new HashSet<>();
 			for( Hop hop : roots )
 				rConstructCPlans(hop, memo, cplans, compileLiterals, visited);
 			
@@ -385,7 +384,7 @@ public class SpoofCompiler
 			}
 			
 			//source code generation for all cplans
-			HashMap<Long, Pair<Hop[],Class<?>>> clas = new HashMap<Long, Pair<Hop[],Class<?>>>();
+			HashMap<Long, Pair<Hop[],Class<?>>> clas = new HashMap<>();
 			for( Entry<Long, Pair<Hop[],CNodeTpl>> cplan : cplans.entrySet() ) 
 			{
 				Pair<Hop[],CNodeTpl> tmp = cplan.getValue();
@@ -597,7 +596,7 @@ public class SpoofCompiler
 	private static ArrayList<Hop> constructModifiedHopDag(ArrayList<Hop> orig, 
 			HashMap<Long, Pair<Hop[],CNodeTpl>> cplans, HashMap<Long, Pair<Hop[],Class<?>>> cla)
 	{
-		HashSet<Long> memo = new HashSet<Long>();
+		HashSet<Long> memo = new HashSet<>();
 		for( int i=0; i<orig.size(); i++ ) {
 			Hop hop = orig.get(i); //w/o iterator because modified
 			rConstructModifiedHopDag(hop, cplans, cla, memo);
@@ -678,7 +677,7 @@ public class SpoofCompiler
 	 */
 	private static HashMap<Long, Pair<Hop[],CNodeTpl>> cleanupCPlans(CPlanMemoTable memo, HashMap<Long, Pair<Hop[],CNodeTpl>> cplans) 
 	{
-		HashMap<Long, Pair<Hop[],CNodeTpl>> cplans2 = new HashMap<Long, Pair<Hop[],CNodeTpl>>();
+		HashMap<Long, Pair<Hop[],CNodeTpl>> cplans2 = new HashMap<>();
 		CPlanCSERewriter cse = new CPlanCSERewriter();
 		
 		for( Entry<Long, Pair<Hop[],CNodeTpl>> e : cplans.entrySet() ) {
@@ -693,7 +692,7 @@ public class SpoofCompiler
 			inHops = Arrays.stream(inHops)
 				.filter(p -> inputHopIDs.contains(p.getHopID()))
 				.toArray(Hop[]::new);
-			cplans2.put(e.getKey(), new Pair<Hop[],CNodeTpl>(inHops, tpl));
+			cplans2.put(e.getKey(), new Pair<>(inHops, tpl));
 			
 			//remove invalid plans with column indexing on main input
 			if( tpl instanceof CNodeCell || tpl instanceof CNodeRow ) {
@@ -836,7 +835,7 @@ public class SpoofCompiler
 		private final int _maxSize;
 		
 		public PlanCache(int maxSize) {
-			 _plans = new LinkedHashMap<CNode, Class<?>>();	
+			 _plans = new LinkedHashMap<>();
 			 _maxSize = maxSize;
 		}
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/SpoofFusedOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/SpoofFusedOp.java b/src/main/java/org/apache/sysml/hops/codegen/SpoofFusedOp.java
index 56bfb61..c6176cc 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/SpoofFusedOp.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/SpoofFusedOp.java
@@ -106,7 +106,7 @@ public class SpoofFusedOp extends Hop implements MultiThreadedHop
 		
 		ExecType et = optFindExecType();
 		
-		ArrayList<Lop> inputs = new ArrayList<Lop>();
+		ArrayList<Lop> inputs = new ArrayList<>();
 		for( Hop c : getInput() )
 			inputs.add(c.constructLops());
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/cplan/CNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/cplan/CNode.java b/src/main/java/org/apache/sysml/hops/codegen/cplan/CNode.java
index ff9103e..b0efb42 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/cplan/CNode.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/cplan/CNode.java
@@ -47,7 +47,7 @@ public abstract class CNode
 	
 	public CNode() {
 		_ID = _seqID.getNextID();
-		_inputs = new ArrayList<CNode>();
+		_inputs = new ArrayList<>();
 		_generated = false;
 	}
 	

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/cplan/CNodeTpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/cplan/CNodeTpl.java b/src/main/java/org/apache/sysml/hops/codegen/cplan/CNodeTpl.java
index db7ea31..ab5853c 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/cplan/CNodeTpl.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/cplan/CNodeTpl.java
@@ -56,7 +56,7 @@ public abstract class CNodeTpl extends CNode implements Cloneable
 	}
 	
 	public HashSet<Long> getInputHopIDs(boolean inclLiterals) {
-		HashSet<Long> ret = new HashSet<Long>();
+		HashSet<Long> ret = new HashSet<>();
 		for( CNode input : _inputs )
 			if( !input.isLiteral() || inclLiterals )
 				ret.add(((CNodeData)input).getHopID());
@@ -90,7 +90,7 @@ public abstract class CNodeTpl extends CNode implements Cloneable
 	
 	protected void renameInputs(List<CNode> outputs, ArrayList<CNode> inputs, int startIndex) {
 		//create map of hopID to new names used for code generation
-		HashMap<Long, String> newNames = new HashMap<Long, String>();
+		HashMap<Long, String> newNames = new HashMap<>();
 		for(int i=startIndex, sPos=0, mPos=0; i < inputs.size(); i++) {
 			CNode cnode = inputs.get(i);
 			if( cnode instanceof CNodeData && ((CNodeData)cnode).isLiteral() )
@@ -114,7 +114,7 @@ public abstract class CNodeTpl extends CNode implements Cloneable
 			return;
 		
 		//create temporary name mapping
-		HashMap<Long, String> newNames = new HashMap<Long, String>();
+		HashMap<Long, String> newNames = new HashMap<>();
 		newNames.put(((CNodeData)input).getHopID(), newName);
 		
 		//single pass to replace all names

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/opt/PlanAnalyzer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanAnalyzer.java b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanAnalyzer.java
index 9ff6986..db1ee4d 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanAnalyzer.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanAnalyzer.java
@@ -68,7 +68,7 @@ public class PlanAnalyzer
 	private static Collection<HashSet<Long>> getConnectedSubGraphs(CPlanMemoTable memo, ArrayList<Hop> roots) 
 	{
 		//build inverted index for 'referenced by' relationship 
-		HashMap<Long, HashSet<Long>> refBy = new HashMap<Long, HashSet<Long>>();
+		HashMap<Long, HashSet<Long>> refBy = new HashMap<>();
 		for( Entry<Long, List<MemoTableEntry>> e : memo.getPlans().entrySet() )
 			for( MemoTableEntry me : e.getValue() ) 
 				for( int i=0; i<3; i++ )
@@ -80,8 +80,8 @@ public class PlanAnalyzer
 		
 		//create a single partition per root node, if reachable over refBy of 
 		//other root node the resulting partition is empty and can be discarded
-		ArrayList<HashSet<Long>> parts = new ArrayList<HashSet<Long>>();
-		HashSet<Long> visited = new HashSet<Long>();
+		ArrayList<HashSet<Long>> parts = new ArrayList<>();
+		HashSet<Long> visited = new HashSet<>();
 		for( Entry<Long, List<MemoTableEntry>> e : memo.getPlans().entrySet() )
 			if( !refBy.containsKey(e.getKey()) ) { //root node
 				HashSet<Long> part = rGetConnectedSubGraphs(e.getKey(), 
@@ -99,7 +99,7 @@ public class PlanAnalyzer
 	private static HashSet<Long> getPartitionRootNodes(CPlanMemoTable memo, HashSet<Long> partition) 
 	{
 		//build inverted index of references entries 
-		HashSet<Long> ix = new HashSet<Long>();
+		HashSet<Long> ix = new HashSet<>();
 		for( Long hopID : partition )
 			if( memo.contains(hopID) )
 				for( MemoTableEntry me : memo.get(hopID) ) {
@@ -108,7 +108,7 @@ public class PlanAnalyzer
 					ix.add(me.input3);
 				}
 		
-		HashSet<Long> roots = new HashSet<Long>();
+		HashSet<Long> roots = new HashSet<>();
 		for( Long hopID : partition )
 			if( !ix.contains(hopID) )
 				roots.add(hopID);
@@ -125,8 +125,8 @@ public class PlanAnalyzer
 			HashSet<Long> partition, CPlanMemoTable memo) 
 	{
 		//collect materialization points bottom-up
-		ArrayList<Long> ret = new ArrayList<Long>();
-		HashSet<Long> visited = new HashSet<Long>();
+		ArrayList<Long> ret = new ArrayList<>();
+		HashSet<Long> visited = new HashSet<>();
 		for( Long hopID : roots )
 			rCollectMaterializationPoints(memo.getHopRefs().get(hopID), 
 					visited, partition, roots, ret);

http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelection.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelection.java b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelection.java
index 4cf56c4..369bf75 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelection.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelection.java
@@ -37,9 +37,8 @@ public abstract class PlanSelection
 	private static final BasicPlanComparator BASE_COMPARE = new BasicPlanComparator();
 	private final TypedPlanComparator _typedCompare = new TypedPlanComparator();
 	
-	private final HashMap<Long, List<MemoTableEntry>> _bestPlans = 
-			new HashMap<Long, List<MemoTableEntry>>();
-	private final HashSet<VisitMark> _visited = new HashSet<VisitMark>();
+	private final HashMap<Long, List<MemoTableEntry>> _bestPlans = new HashMap<>();
+	private final HashSet<VisitMark> _visited = new HashSet<>();
 	
 	/**
 	 * Given a HOP DAG G, and a set of partial fusions plans P, find the set of optimal, 
@@ -95,7 +94,7 @@ public abstract class PlanSelection
 		
 		//step 1: prune subsumed plans of same type
 		if( memo.contains(current.getHopID()) ) {
-			HashSet<MemoTableEntry> rmSet = new HashSet<MemoTableEntry>();
+			HashSet<MemoTableEntry> rmSet = new HashSet<>();
 			List<MemoTableEntry> hopP = memo.get(current.getHopID());
 			for( MemoTableEntry e1 : hopP )
 				for( MemoTableEntry e2 : hopP )