[SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

This patch converts the entire DMLException hierarchy to runtime
exceptions to ease the APIs and internal handling, removes unnecessary
exceptions such as the CacheException, and removes unnecessary throws
clauses and their useless java doc.


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

Branch: refs/heads/master
Commit: 215a1cc6b36ed1f6db5bf1e77b19c7928150ddec
Parents: 2b74a79
Author: Matthias Boehm <[email protected]>
Authored: Fri Mar 23 22:16:20 2018 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Fri Mar 23 22:18:28 2018 -0700

----------------------------------------------------------------------
 .../java/org/apache/sysml/api/DMLException.java |  37 ++-
 .../java/org/apache/sysml/api/DMLScript.java    |  22 +-
 .../apache/sysml/api/ScriptExecutorUtils.java   |   9 +-
 .../api/mlcontext/MLContextConversionUtil.java  | 260 +++++++++----------
 .../sysml/api/mlcontext/MLContextUtil.java      |  21 +-
 .../sysml/api/mlcontext/ScriptExecutor.java     |   6 +-
 .../java/org/apache/sysml/conf/DMLConfig.java   |  21 +-
 .../sysml/debug/DMLDebuggerFunctions.java       |   6 +-
 .../java/org/apache/sysml/debug/DebugState.java |   3 +-
 .../java/org/apache/sysml/hops/AggBinaryOp.java | 106 +++-----
 .../java/org/apache/sysml/hops/AggUnaryOp.java  |  12 +-
 .../java/org/apache/sysml/hops/BinaryOp.java    |  33 +--
 .../org/apache/sysml/hops/ConvolutionOp.java    |  12 +-
 .../java/org/apache/sysml/hops/DataGenOp.java   |   9 +-
 src/main/java/org/apache/sysml/hops/DataOp.java |   6 +-
 .../java/org/apache/sysml/hops/FunctionOp.java  |   5 +-
 src/main/java/org/apache/sysml/hops/Hop.java    |  24 +-
 .../org/apache/sysml/hops/HopsException.java    |   6 +-
 .../java/org/apache/sysml/hops/IndexingOp.java  |  10 +-
 .../org/apache/sysml/hops/LeftIndexingOp.java   |  10 +-
 .../java/org/apache/sysml/hops/LiteralOp.java   |  11 +-
 src/main/java/org/apache/sysml/hops/NaryOp.java |  12 +-
 .../org/apache/sysml/hops/OptimizerUtils.java   |  13 +-
 .../sysml/hops/ParameterizedBuiltinOp.java      |  10 +-
 .../org/apache/sysml/hops/QuaternaryOp.java     |  35 +--
 .../java/org/apache/sysml/hops/ReorgOp.java     |   8 +-
 .../java/org/apache/sysml/hops/TernaryOp.java   |  32 +--
 .../java/org/apache/sysml/hops/UnaryOp.java     |  19 +-
 .../sysml/hops/codegen/SpoofCompiler.java       |  34 +--
 .../apache/sysml/hops/codegen/SpoofFusedOp.java |   8 +-
 .../sysml/hops/cost/CostEstimationWrapper.java  |   4 +-
 .../apache/sysml/hops/cost/CostEstimator.java   |  27 +-
 .../hops/cost/CostEstimatorStaticRuntime.java   |  32 +--
 .../sysml/hops/ipa/FunctionCallGraph.java       |   4 +-
 .../sysml/hops/ipa/FunctionCallSizeInfo.java    |  12 +-
 .../java/org/apache/sysml/hops/ipa/IPAPass.java |   5 +-
 .../hops/ipa/IPAPassApplyStaticHopRewrites.java |   4 +-
 .../ipa/IPAPassFlagFunctionsRecompileOnce.java  |   1 -
 .../sysml/hops/ipa/IPAPassInlineFunctions.java  |   2 -
 .../ipa/IPAPassPropagateReplaceLiterals.java    |  10 +-
 .../ipa/IPAPassRemoveConstantBinaryOps.java     |   9 +-
 .../IPAPassRemoveUnnecessaryCheckpoints.java    |  17 +-
 .../hops/ipa/IPAPassRemoveUnusedFunctions.java  |   4 +-
 .../sysml/hops/ipa/InterProceduralAnalysis.java |  48 +---
 .../hops/recompile/LiteralReplacement.java      |  22 +-
 .../apache/sysml/hops/recompile/Recompiler.java |  61 +----
 .../sysml/hops/rewrite/HopDagValidator.java     |   4 +-
 .../sysml/hops/rewrite/HopRewriteRule.java      |  11 +-
 .../sysml/hops/rewrite/HopRewriteUtils.java     | 106 ++------
 .../sysml/hops/rewrite/ProgramRewriter.java     |  28 +-
 .../RewriteAlgebraicSimplificationDynamic.java  |  66 +----
 .../RewriteAlgebraicSimplificationStatic.java   |  37 +--
 .../rewrite/RewriteBlockSizeAndReblock.java     |   3 -
 .../RewriteCommonSubexpressionElimination.java  |   8 +-
 .../hops/rewrite/RewriteCompressedReblock.java  |  16 +-
 .../hops/rewrite/RewriteConstantFolding.java    |  38 +--
 ...RewriteElementwiseMultChainOptimization.java |   5 +-
 .../rewrite/RewriteForLoopVectorization.java    |   9 +-
 .../rewrite/RewriteIndexingVectorization.java   |  24 +-
 .../RewriteInjectSparkLoopCheckpointing.java    |   5 +-
 .../RewriteInjectSparkPReadCheckpointing.java   |  10 +-
 .../RewriteMarkLoopVariablesUpdateInPlace.java  |   6 +-
 .../RewriteMatrixMultChainOptimization.java     |  10 +-
 .../hops/rewrite/RewriteMergeBlockSequence.java |  12 +-
 .../RewriteRemoveDanglingParentReferences.java  |  13 +-
 .../rewrite/RewriteRemoveEmptyBasicBlocks.java  |   8 +-
 .../RewriteRemovePersistentReadWrite.java       |  17 +-
 .../rewrite/RewriteRemoveReadAfterWrite.java    |  11 +-
 .../RewriteRemoveUnnecessaryBranches.java       |   5 +-
 .../rewrite/RewriteRemoveUnnecessaryCasts.java  |  14 +-
 .../RewriteSplitDagDataDependentOperators.java  |   4 +-
 .../rewrite/RewriteSplitDagUnknownCSVRead.java  |   5 +-
 .../RewriteTransientWriteParentHandling.java    |  14 +-
 .../hops/rewrite/StatementBlockRewriteRule.java |   9 +-
 .../java/org/apache/sysml/lops/Aggregate.java   |   3 +-
 src/main/java/org/apache/sysml/lops/Append.java |   4 +-
 .../java/org/apache/sysml/lops/AppendG.java     |   8 +-
 .../org/apache/sysml/lops/AppendGAlignedSP.java |   1 -
 .../java/org/apache/sysml/lops/AppendM.java     |   8 +-
 .../java/org/apache/sysml/lops/AppendR.java     |   8 +-
 src/main/java/org/apache/sysml/lops/Binary.java |   6 +-
 .../java/org/apache/sysml/lops/BinaryM.java     |  23 +-
 .../org/apache/sysml/lops/BinaryScalar.java     |   3 +-
 .../org/apache/sysml/lops/BinaryUAggChain.java  |   7 +-
 .../java/org/apache/sysml/lops/CSVReBlock.java  |   8 +-
 .../java/org/apache/sysml/lops/Checkpoint.java  |  11 +-
 .../java/org/apache/sysml/lops/CoVariance.java  |  10 +-
 .../org/apache/sysml/lops/CombineBinary.java    |   4 +-
 .../org/apache/sysml/lops/CombineTernary.java   |   3 +-
 .../org/apache/sysml/lops/CombineUnary.java     |   4 +-
 .../java/org/apache/sysml/lops/Compression.java |  11 +-
 .../apache/sysml/lops/ConvolutionTransform.java |   6 +-
 src/main/java/org/apache/sysml/lops/Ctable.java |   4 +-
 .../sysml/lops/CumulativeOffsetBinary.java      |   8 +-
 .../sysml/lops/CumulativePartialAggregate.java  |   4 +-
 .../sysml/lops/CumulativeSplitAggregate.java    |   4 +-
 src/main/java/org/apache/sysml/lops/Data.java   |  35 +--
 .../java/org/apache/sysml/lops/DataGen.java     |  29 +--
 .../org/apache/sysml/lops/DataPartition.java    |   3 +-
 .../org/apache/sysml/lops/FunctionCallCP.java   |   7 +-
 .../apache/sysml/lops/FunctionCallCPSingle.java |  16 +-
 .../org/apache/sysml/lops/GroupedAggregate.java |   4 +-
 .../java/org/apache/sysml/lops/LeftIndex.java   |  12 +-
 src/main/java/org/apache/sysml/lops/Lop.java    |  52 ++--
 .../java/org/apache/sysml/lops/MapMult.java     |  11 +-
 .../org/apache/sysml/lops/MapMultChain.java     |  14 +-
 src/main/java/org/apache/sysml/lops/Nary.java   |   7 +-
 .../org/apache/sysml/lops/OutputParameters.java |   4 +-
 src/main/java/org/apache/sysml/lops/PMMJ.java   |   7 +-
 .../java/org/apache/sysml/lops/PMapMult.java    |   6 +-
 .../apache/sysml/lops/ParameterizedBuiltin.java |  22 +-
 .../org/apache/sysml/lops/PartialAggregate.java |  17 +-
 .../java/org/apache/sysml/lops/PickByCount.java |  11 +-
 .../java/org/apache/sysml/lops/ReBlock.java     |   4 +-
 src/main/java/org/apache/sysml/lops/RepMat.java |   7 +-
 .../java/org/apache/sysml/lops/RightIndex.java  |   9 +-
 .../java/org/apache/sysml/lops/SpoofFused.java  |  20 +-
 .../org/apache/sysml/lops/TernaryAggregate.java |   2 +-
 .../java/org/apache/sysml/lops/Transform.java   |  16 +-
 .../org/apache/sysml/lops/UAggOuterChain.java   |   4 +-
 src/main/java/org/apache/sysml/lops/Unary.java  |  30 +--
 .../java/org/apache/sysml/lops/UnaryCP.java     |   5 +-
 .../apache/sysml/lops/WeightedCrossEntropy.java |   6 +-
 .../sysml/lops/WeightedCrossEntropyR.java       |  10 +-
 .../org/apache/sysml/lops/WeightedDivMM.java    |   6 +-
 .../org/apache/sysml/lops/WeightedDivMMR.java   |  10 +-
 .../org/apache/sysml/lops/WeightedSigmoid.java  |   6 +-
 .../org/apache/sysml/lops/WeightedSigmoidR.java |  12 +-
 .../apache/sysml/lops/WeightedSquaredLoss.java  |   8 +-
 .../apache/sysml/lops/WeightedSquaredLossR.java |  10 +-
 .../org/apache/sysml/lops/WeightedUnaryMM.java  |  16 +-
 .../org/apache/sysml/lops/WeightedUnaryMMR.java |  18 +-
 .../java/org/apache/sysml/lops/ZeroOut.java     |  31 +--
 .../java/org/apache/sysml/lops/compile/Dag.java |  91 ++-----
 .../org/apache/sysml/lops/compile/JobType.java  |   5 +-
 .../apache/sysml/lops/runtime/RunMRJobs.java    |  17 +-
 .../sysml/parser/AssignmentStatement.java       |   6 +-
 .../apache/sysml/parser/BinaryExpression.java   |   9 +-
 .../apache/sysml/parser/BooleanExpression.java  |   4 +-
 .../apache/sysml/parser/BooleanIdentifier.java  |   2 +-
 .../sysml/parser/BuiltinFunctionExpression.java |  68 ++---
 .../apache/sysml/parser/ConstIdentifier.java    |   4 +-
 .../org/apache/sysml/parser/DMLProgram.java     |  10 +-
 .../org/apache/sysml/parser/DMLTranslator.java  | 154 ++++-------
 .../org/apache/sysml/parser/DataExpression.java |  27 +-
 .../org/apache/sysml/parser/DataIdentifier.java |   5 +-
 .../apache/sysml/parser/DoubleIdentifier.java   |   2 +-
 .../org/apache/sysml/parser/Expression.java     |  31 +--
 .../org/apache/sysml/parser/ExpressionList.java |   2 +-
 .../sysml/parser/ExternalFunctionStatement.java |   7 +-
 .../org/apache/sysml/parser/ForStatement.java   |   6 +-
 .../apache/sysml/parser/ForStatementBlock.java  |  17 +-
 .../sysml/parser/FunctionCallIdentifier.java    |   6 +-
 .../apache/sysml/parser/FunctionStatement.java  |   6 +-
 .../sysml/parser/FunctionStatementBlock.java    |  11 +-
 .../org/apache/sysml/parser/Identifier.java     |   1 -
 .../org/apache/sysml/parser/IfStatement.java    |   8 +-
 .../apache/sysml/parser/IfStatementBlock.java   |  15 +-
 .../apache/sysml/parser/ImportStatement.java    |   2 +-
 .../apache/sysml/parser/IndexedIdentifier.java  |   7 +-
 .../org/apache/sysml/parser/IntIdentifier.java  |   2 +-
 .../apache/sysml/parser/IterablePredicate.java  |   7 +-
 .../sysml/parser/LiveVariableAnalysis.java      |   6 +-
 .../sysml/parser/MultiAssignmentStatement.java  |   3 +-
 .../apache/sysml/parser/OutputStatement.java    |  14 +-
 .../sysml/parser/ParForStatementBlock.java      |  34 +--
 .../ParameterizedBuiltinFunctionExpression.java |  35 +--
 .../org/apache/sysml/parser/ParserWrapper.java  |   3 +-
 .../org/apache/sysml/parser/PathStatement.java  |   2 +-
 .../org/apache/sysml/parser/PrintStatement.java |  13 +-
 .../sysml/parser/RelationalExpression.java      |  13 +-
 .../java/org/apache/sysml/parser/Statement.java |  10 +-
 .../org/apache/sysml/parser/StatementBlock.java |  35 +--
 .../apache/sysml/parser/StringIdentifier.java   |   6 +-
 .../org/apache/sysml/parser/WhileStatement.java |   8 +-
 .../sysml/parser/WhileStatementBlock.java       |  13 +-
 .../sysml/parser/dml/DMLParserWrapper.java      |   6 +-
 .../sysml/parser/pydml/PyDMLParserWrapper.java  |   6 +-
 .../controlprogram/ParForProgramBlock.java      |   2 -
 .../controlprogram/caching/CacheException.java  |  50 ----
 .../controlprogram/caching/CacheableData.java   | 193 ++++++--------
 .../controlprogram/caching/FrameObject.java     |   4 +-
 .../controlprogram/caching/MatrixObject.java    |  27 +-
 .../parfor/ResultMergeLocalFile.java            |   3 +-
 .../parfor/opt/OptTreePlanChecker.java          |   1 -
 .../parfor/opt/ProgramRecompiler.java           |   3 -
 .../instructions/cp/ScalarObjectFactory.java    |   3 +-
 .../ParameterizedBuiltinCPFileInstruction.java  |  10 +-
 .../instructions/gpu/context/GPUObject.java     |  47 ++--
 .../org/apache/sysml/udf/lib/CumSumProd.java    |  92 +++----
 .../apache/sysml/udf/lib/MultiInputCbind.java   | 127 +++++----
 .../apache/sysml/udf/lib/SGDNesterovUpdate.java |   3 -
 .../java/org/apache/sysml/utils/Explain.java    |  45 +---
 .../org/apache/sysml/utils/MLContextProxy.java  |   5 +-
 .../org/apache/sysml/yarn/DMLYarnClient.java    |   3 +-
 .../sysml/yarn/ropt/GridEnumerationMemory.java  |   8 +-
 .../apache/sysml/yarn/ropt/ResourceConfig.java  |  25 +-
 .../sysml/yarn/ropt/ResourceOptimizer.java      |  10 +-
 .../yarn/ropt/ResourceOptimizerCPMigration.java | 246 +-----------------
 199 files changed, 1101 insertions(+), 2740 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/DMLException.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/DMLException.java 
b/src/main/java/org/apache/sysml/api/DMLException.java
index 7da5aef..b585c11 100644
--- a/src/main/java/org/apache/sysml/api/DMLException.java
+++ b/src/main/java/org/apache/sysml/api/DMLException.java
@@ -22,26 +22,25 @@ package org.apache.sysml.api;
 /**
  * <p>Exception occurring in the DML framework.</p>
  */
-public class DMLException extends Exception 
+public class DMLException extends RuntimeException 
 {
-       
-       public static String ERROR_MSG_DELIMITER = " : ";
-       
+       public static final String ERROR_MSG_DELIMITER = " : ";
+
        private static final long serialVersionUID = 1L;
 
-    public DMLException() {
-        super();
-    }
-    
-    public DMLException(String message) {
-        super(message);
-    }
-    
-    public DMLException(Throwable cause) {
-        super(cause);
-    }
-    
-    public DMLException(String message, Throwable cause) {
-        super(message, cause);
-    }
+       public DMLException() {
+               super();
+       }
+
+       public DMLException(String message) {
+               super(message);
+       }
+
+       public DMLException(Throwable cause) {
+               super(cause);
+       }
+
+       public DMLException(String message, Throwable cause) {
+               super(message, cause);
+       }
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 7e5e1f3..36a23a0 100644
--- a/src/main/java/org/apache/sysml/api/DMLScript.java
+++ b/src/main/java/org/apache/sysml/api/DMLScript.java
@@ -60,12 +60,9 @@ import org.apache.sysml.conf.CompilerConfig;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.conf.DMLConfig;
 import org.apache.sysml.debug.DMLDebugger;
-import org.apache.sysml.debug.DMLDebuggerException;
 import org.apache.sysml.debug.DMLDebuggerProgramInfo;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.lops.Lop;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.parser.DMLProgram;
 import org.apache.sysml.parser.DMLTranslator;
 import org.apache.sysml.parser.LanguageException;
@@ -456,7 +453,6 @@ public class DMLScript
         * @param args arguments
         * @return true if success, false otherwise
         * @throws DMLException if DMLException occurs
-        * @throws ParseException if ParseException occurs
         */
        public static boolean executeScript( Configuration conf, String[] args 
) 
                throws DMLException
@@ -565,10 +561,9 @@ public class DMLScript
         * @param scriptOrFilename script or filename
         * @return a string representation of the script
         * @throws IOException  if error
-        * @throws LanguageException    if error
         */
        protected static String readDMLScript( boolean isFile, String 
scriptOrFilename )
-               throws IOException, LanguageException
+               throws IOException
        {
                String dmlScriptStr;
                
@@ -663,15 +658,10 @@ public class DMLScript
         * @param argVals map of argument values
         * @param allArgs arguments
         * @param scriptType type of script (DML or PyDML)
-        * @throws ParseException if ParseException occurs
         * @throws IOException if IOException occurs
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
-        * @throws LanguageException if LanguageException occurs
-        * @throws HopsException if HopsException occurs
-        * @throws LopsException if LopsException occurs
         */
        private static void execute(String dmlScriptStr, String fnameOptConfig, 
Map<String,String> argVals, String[] allArgs, ScriptType scriptType)
-               throws ParseException, IOException, DMLRuntimeException, 
LanguageException, HopsException, LopsException 
+               throws IOException
        {       
                SCRIPT_TYPE = scriptType;
 
@@ -774,16 +764,10 @@ public class DMLScript
         * @param fnameOptConfig Full path of configuration file for SystemML
         * @param argVals Key-value pairs defining arguments of DML script
         * @param scriptType type of script (DML or PyDML)
-        * @throws ParseException if ParseException occurs
         * @throws IOException if IOException occurs
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
-        * @throws DMLDebuggerException if DMLDebuggerException occurs
-        * @throws LanguageException if LanguageException occurs
-        * @throws HopsException if HopsException occurs
-        * @throws LopsException if LopsException occurs
         */
        private static void launchDebugger(String dmlScriptStr, String 
fnameOptConfig, Map<String,String> argVals, ScriptType scriptType)
-               throws ParseException, IOException, DMLRuntimeException, 
DMLDebuggerException, LanguageException, HopsException, LopsException 
+               throws IOException
        {               
                DMLDebuggerProgramInfo dbprog = new DMLDebuggerProgramInfo();
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java 
b/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java
index d6258a5..d587f48 100644
--- a/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java
+++ b/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java
@@ -44,10 +44,8 @@ public class ScriptExecutorUtils {
         *            script executor
         * @param statisticsMaxHeavyHitters
         *            maximum number of statistics to print
-        * @throws DMLRuntimeException
-        *             if exception occurs
         */
-       public static void executeRuntimeProgram(ScriptExecutor se, int 
statisticsMaxHeavyHitters) throws DMLRuntimeException {
+       public static void executeRuntimeProgram(ScriptExecutor se, int 
statisticsMaxHeavyHitters) {
                Program prog = se.getRuntimeProgram();
                ExecutionContext ec = se.getExecutionContext();
                DMLConfig config = se.getConfig();
@@ -67,11 +65,8 @@ public class ScriptExecutorUtils {
         *            dml configuration
         * @param statisticsMaxHeavyHitters
         *            maximum number of statistics to print
-        * @throws DMLRuntimeException
-        *             if error occurs
         */
-       public static void executeRuntimeProgram(Program rtprog, 
ExecutionContext ec, DMLConfig dmlconf, int statisticsMaxHeavyHitters)
-                       throws DMLRuntimeException {
+       public static void executeRuntimeProgram(Program rtprog, 
ExecutionContext ec, DMLConfig dmlconf, int statisticsMaxHeavyHitters) {
                // Whether extra statistics useful for developers and others 
interested
                // in digging into performance problems are recorded and 
displayed
                DMLScript.FINEGRAINED_STATISTICS = DMLScript.STATISTICS && 
dmlconf.getBooleanValue(DMLConfig.EXTRA_FINEGRAINED_STATS);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 02b07c0..5d2478f 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
@@ -44,7 +44,6 @@ import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.controlprogram.caching.CacheException;
 import org.apache.sysml.runtime.controlprogram.caching.FrameObject;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.controlprogram.context.SparkExecutionContext;
@@ -954,58 +953,54 @@ public class MLContextConversionUtil {
         * @return the {@code MatrixObject} converted to a {@code List<String>}
         */
        public static List<String> matrixObjectToListStringCSV(MatrixObject 
matrixObject) {
-               try {
-                       MatrixBlock mb = matrixObject.acquireRead();
-
-                       int rows = mb.getNumRows();
-                       int cols = mb.getNumColumns();
-                       List<String> list = new ArrayList<>();
-
-                       if ( !mb.isEmptyBlock(false) ) {
-                               if (mb.isInSparseFormat()) {
-                                       Iterator<IJV> iter = 
mb.getSparseBlockIterator();
-                                       int prevCellRow = -1;
-                                       StringBuilder sb = null;
-                                       while (iter.hasNext()) {
-                                               IJV cell = iter.next();
-                                               int i = cell.getI();
-                                               double v = cell.getV();
-                                               if (i > prevCellRow) {
-                                                       if (sb == null) {
-                                                               sb = new 
StringBuilder();
-                                                       } else {
-                                                               
list.add(sb.toString());
-                                                               sb = new 
StringBuilder();
-                                                       }
-                                                       sb.append(v);
-                                                       prevCellRow = i;
-                                               } else if (i == prevCellRow) {
-                                                       sb.append(",");
-                                                       sb.append(v);
+               MatrixBlock mb = matrixObject.acquireRead();
+
+               int rows = mb.getNumRows();
+               int cols = mb.getNumColumns();
+               List<String> list = new ArrayList<>();
+
+               if ( !mb.isEmptyBlock(false) ) {
+                       if (mb.isInSparseFormat()) {
+                               Iterator<IJV> iter = 
mb.getSparseBlockIterator();
+                               int prevCellRow = -1;
+                               StringBuilder sb = null;
+                               while (iter.hasNext()) {
+                                       IJV cell = iter.next();
+                                       int i = cell.getI();
+                                       double v = cell.getV();
+                                       if (i > prevCellRow) {
+                                               if (sb == null) {
+                                                       sb = new 
StringBuilder();
+                                               } else {
+                                                       list.add(sb.toString());
+                                                       sb = new 
StringBuilder();
                                                }
+                                               sb.append(v);
+                                               prevCellRow = i;
+                                       } else if (i == prevCellRow) {
+                                               sb.append(",");
+                                               sb.append(v);
                                        }
-                                       if (sb != null) {
-                                               list.add(sb.toString());
-                                       }
-                               } else {
-                                       for (int i = 0; i < rows; i++) {
-                                               StringBuilder sb = new 
StringBuilder();
-                                               for (int j = 0; j < cols; j++) {
-                                                       if (j > 0) {
-                                                               sb.append(",");
-                                                       }
-                                                       
sb.append(mb.getValueDenseUnsafe(i, j));
+                               }
+                               if (sb != null) {
+                                       list.add(sb.toString());
+                               }
+                       } else {
+                               for (int i = 0; i < rows; i++) {
+                                       StringBuilder sb = new StringBuilder();
+                                       for (int j = 0; j < cols; j++) {
+                                               if (j > 0) {
+                                                       sb.append(",");
                                                }
-                                               list.add(sb.toString());
+                                               
sb.append(mb.getValueDenseUnsafe(i, j));
                                        }
+                                       list.add(sb.toString());
                                }
                        }
-
-                       matrixObject.release();
-                       return list;
-               } catch (CacheException e) {
-                       throw new MLContextException("Cache exception while 
converting matrix object to List<String> CSV format", e);
                }
+
+               matrixObject.release();
+               return list;
        }
 
        /**
@@ -1018,31 +1013,27 @@ public class MLContextConversionUtil {
         * @return the {@code FrameObject} converted to a {@code List<String>}
         */
        public static List<String> frameObjectToListStringCSV(FrameObject 
frameObject, String delimiter) {
-               try {
-                       FrameBlock fb = frameObject.acquireRead();
+               FrameBlock fb = frameObject.acquireRead();
 
-                       int rows = fb.getNumRows();
-                       int cols = fb.getNumColumns();
-                       List<String> list = new ArrayList<>();
+               int rows = fb.getNumRows();
+               int cols = fb.getNumColumns();
+               List<String> list = new ArrayList<>();
 
-                       for (int i = 0; i < rows; i++) {
-                               StringBuilder sb = new StringBuilder();
-                               for (int j = 0; j < cols; j++) {
-                                       if (j > 0) {
-                                               sb.append(delimiter);
-                                       }
-                                       if (fb.get(i, j) != null) {
-                                               sb.append(fb.get(i, j));
-                                       }
+               for (int i = 0; i < rows; i++) {
+                       StringBuilder sb = new StringBuilder();
+                       for (int j = 0; j < cols; j++) {
+                               if (j > 0) {
+                                       sb.append(delimiter);
+                               }
+                               if (fb.get(i, j) != null) {
+                                       sb.append(fb.get(i, j));
                                }
-                               list.add(sb.toString());
                        }
-
-                       frameObject.release();
-                       return list;
-               } catch (CacheException e) {
-                       throw new MLContextException("Cache exception while 
converting frame object to List<String> CSV format", e);
+                       list.add(sb.toString());
                }
+
+               frameObject.release();
+               return list;
        }
 
        /**
@@ -1053,50 +1044,45 @@ public class MLContextConversionUtil {
         * @return the {@code MatrixObject} converted to a {@code List<String>}
         */
        public static List<String> matrixObjectToListStringIJV(MatrixObject 
matrixObject) {
-               try {
-                       MatrixBlock mb = matrixObject.acquireRead();
-
-                       int rows = mb.getNumRows();
-                       int cols = mb.getNumColumns();
-                       List<String> list = new ArrayList<>();
-
-                       if (mb.getNonZeros() > 0) {
-                               if (mb.isInSparseFormat()) {
-                                       Iterator<IJV> iter = 
mb.getSparseBlockIterator();
-                                       StringBuilder sb = null;
-                                       while (iter.hasNext()) {
-                                               IJV cell = iter.next();
+               MatrixBlock mb = matrixObject.acquireRead();
+
+               int rows = mb.getNumRows();
+               int cols = mb.getNumColumns();
+               List<String> list = new ArrayList<>();
+
+               if (mb.getNonZeros() > 0) {
+                       if (mb.isInSparseFormat()) {
+                               Iterator<IJV> iter = 
mb.getSparseBlockIterator();
+                               StringBuilder sb = null;
+                               while (iter.hasNext()) {
+                                       IJV cell = iter.next();
+                                       sb = new StringBuilder();
+                                       sb.append(cell.getI() + 1);
+                                       sb.append(" ");
+                                       sb.append(cell.getJ() + 1);
+                                       sb.append(" ");
+                                       sb.append(cell.getV());
+                                       list.add(sb.toString());
+                               }
+                       } else {
+                               StringBuilder sb = null;
+                               for (int i = 0; i < rows; i++) {
+                                       sb = new StringBuilder();
+                                       for (int j = 0; j < cols; j++) {
                                                sb = new StringBuilder();
-                                               sb.append(cell.getI() + 1);
+                                               sb.append(i + 1);
                                                sb.append(" ");
-                                               sb.append(cell.getJ() + 1);
+                                               sb.append(j + 1);
                                                sb.append(" ");
-                                               sb.append(cell.getV());
+                                               
sb.append(mb.getValueDenseUnsafe(i, j));
                                                list.add(sb.toString());
                                        }
-                               } else {
-                                       StringBuilder sb = null;
-                                       for (int i = 0; i < rows; i++) {
-                                               sb = new StringBuilder();
-                                               for (int j = 0; j < cols; j++) {
-                                                       sb = new 
StringBuilder();
-                                                       sb.append(i + 1);
-                                                       sb.append(" ");
-                                                       sb.append(j + 1);
-                                                       sb.append(" ");
-                                                       
sb.append(mb.getValueDenseUnsafe(i, j));
-                                                       list.add(sb.toString());
-                                               }
-                                       }
                                }
                        }
-
-                       matrixObject.release();
-                       return list;
-               } catch (CacheException e) {
-                       throw new MLContextException("Cache exception while 
converting matrix object to List<String> IJV format",
-                                       e);
                }
+
+               matrixObject.release();
+               return list;
        }
 
        /**
@@ -1107,34 +1093,30 @@ public class MLContextConversionUtil {
         * @return the {@code FrameObject} converted to a {@code List<String>}
         */
        public static List<String> frameObjectToListStringIJV(FrameObject 
frameObject) {
-               try {
-                       FrameBlock fb = frameObject.acquireRead();
-
-                       int rows = fb.getNumRows();
-                       int cols = fb.getNumColumns();
-                       List<String> list = new ArrayList<>();
-
-                       StringBuilder sb = null;
-                       for (int i = 0; i < rows; i++) {
-                               sb = new StringBuilder();
-                               for (int j = 0; j < cols; j++) {
-                                       if (fb.get(i, j) != null) {
-                                               sb = new StringBuilder();
-                                               sb.append(i + 1);
-                                               sb.append(" ");
-                                               sb.append(j + 1);
-                                               sb.append(" ");
-                                               sb.append(fb.get(i, j));
-                                               list.add(sb.toString());
-                                       }
+               FrameBlock fb = frameObject.acquireRead();
+
+               int rows = fb.getNumRows();
+               int cols = fb.getNumColumns();
+               List<String> list = new ArrayList<>();
+
+               StringBuilder sb = null;
+               for (int i = 0; i < rows; i++) {
+                       sb = new StringBuilder();
+                       for (int j = 0; j < cols; j++) {
+                               if (fb.get(i, j) != null) {
+                                       sb = new StringBuilder();
+                                       sb.append(i + 1);
+                                       sb.append(" ");
+                                       sb.append(j + 1);
+                                       sb.append(" ");
+                                       sb.append(fb.get(i, j));
+                                       list.add(sb.toString());
                                }
                        }
-
-                       frameObject.release();
-                       return list;
-               } catch (CacheException e) {
-                       throw new MLContextException("Cache exception while 
converting frame object to List<String> IJV format", e);
                }
+
+               frameObject.release();
+               return list;
        }
 
        /**
@@ -1145,14 +1127,10 @@ public class MLContextConversionUtil {
         * @return the {@code MatrixObject} converted to a {@code double[][]}
         */
        public static double[][] matrixObjectTo2DDoubleArray(MatrixObject 
matrixObject) {
-               try {
-                       MatrixBlock mb = matrixObject.acquireRead();
-                       double[][] matrix = 
DataConverter.convertToDoubleMatrix(mb);
-                       matrixObject.release();
-                       return matrix;
-               } catch (CacheException e) {
-                       throw new MLContextException("Cache exception while 
converting matrix object to double matrix", e);
-               }
+               MatrixBlock mb = matrixObject.acquireRead();
+               double[][] matrix = DataConverter.convertToDoubleMatrix(mb);
+               matrixObject.release();
+               return matrix;
        }
 
        /**
@@ -1257,14 +1235,10 @@ public class MLContextConversionUtil {
         * @return the {@code FrameObject} converted to a {@code String[][]}
         */
        public static String[][] frameObjectTo2DStringArray(FrameObject 
frameObject) {
-               try {
-                       FrameBlock fb = frameObject.acquireRead();
-                       String[][] frame = 
DataConverter.convertToStringFrame(fb);
-                       frameObject.release();
-                       return frame;
-               } catch (CacheException e) {
-                       throw new MLContextException("CacheException while 
converting frame object to 2D string array", e);
-               }
+               FrameBlock fb = frameObject.acquireRead();
+               String[][] frame = DataConverter.convertToStringFrame(fb);
+               frameObject.release();
+               return frame;
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 af99ab1..dcf4595 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java
@@ -54,11 +54,8 @@ import org.apache.sysml.conf.CompilerConfig;
 import org.apache.sysml.conf.CompilerConfig.ConfigType;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.conf.DMLConfig;
-import org.apache.sysml.hops.HopsException;
-import org.apache.sysml.parser.LanguageException;
 import org.apache.sysml.parser.ParseException;
 import org.apache.sysml.parser.Statement;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.ForProgramBlock;
 import org.apache.sysml.runtime.controlprogram.FunctionProgramBlock;
 import org.apache.sysml.runtime.controlprogram.IfProgramBlock;
@@ -1181,15 +1178,8 @@ public final class MLContextUtil {
         *            If false, the dot graph will be created without subgraphs 
for
         *            statement blocks.
         * @return hop DAG in dot format
-        * @throws LanguageException
-        *             if error occurs
-        * @throws DMLRuntimeException
-        *             if error occurs
-        * @throws HopsException
-        *             if error occurs
         */
-       public static String getHopDAG(MLContext mlCtx, Script script, 
ArrayList<Integer> lines, boolean performHOPRewrites,
-                       boolean withSubgraph) throws HopsException, 
DMLRuntimeException, LanguageException {
+       public static String getHopDAG(MLContext mlCtx, Script script, 
ArrayList<Integer> lines, boolean performHOPRewrites, boolean withSubgraph) {
                return getHopDAG(mlCtx, script, lines, null, 
performHOPRewrites, withSubgraph);
        }
 
@@ -1213,16 +1203,9 @@ public final class MLContextUtil {
         *            If false, the dot graph will be created without subgraphs 
for
         *            statement blocks.
         * @return hop DAG in dot format
-        * @throws LanguageException
-        *             if error occurs
-        * @throws DMLRuntimeException
-        *             if error occurs
-        * @throws HopsException
-        *             if error occurs
         */
        public static String getHopDAG(MLContext mlCtx, Script script, 
ArrayList<Integer> lines, SparkConf newConf,
-                       boolean performHOPRewrites, boolean withSubgraph)
-                       throws HopsException, DMLRuntimeException, 
LanguageException {
+                       boolean performHOPRewrites, boolean withSubgraph) {
                SparkConf oldConf = 
mlCtx.getSparkSession().sparkContext().getConf();
                SparkExecutionContext.SparkClusterConfig systemmlConf = 
SparkExecutionContext.getSparkClusterConfig();
                long oldMaxMemory = InfrastructureAnalyzer.getLocalMaxMemory();

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java 
b/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
index 1fa9e4e..26b744b 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
@@ -548,11 +548,7 @@ public class ScriptExecutor {
        protected void validateScript() {
                try {
                        dmlTranslator.validateParseTree(dmlProgram);
-               } catch (LanguageException e) {
-                       throw new MLContextException("Exception occurred while 
validating script", e);
-               } catch (ParseException e) {
-                       throw new MLContextException("Exception occurred while 
validating script", e);
-               } catch (IOException e) {
+               } catch (LanguageException | ParseException e) {
                        throw new MLContextException("Exception occurred while 
validating script", e);
                }
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 62e1bd0..fb0237f 100644
--- a/src/main/java/org/apache/sysml/conf/DMLConfig.java
+++ b/src/main/java/org/apache/sysml/conf/DMLConfig.java
@@ -147,13 +147,13 @@ public class DMLConfig
        }
 
        public DMLConfig(String fileName) 
-               throws ParseException, FileNotFoundException
+               throws FileNotFoundException
        {
                this( fileName, false );
        }
        
        public DMLConfig(String fileName, boolean silent) 
-               throws ParseException, FileNotFoundException
+               throws FileNotFoundException
        {
                _fileName = fileName;
                try {
@@ -279,9 +279,8 @@ public class DMLConfig
         * Method to update the key value
         * @param paramName parameter name
         * @param paramValue parameter value
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public void setTextValue(String paramName, String paramValue) throws 
DMLRuntimeException {
+       public void setTextValue(String paramName, String paramValue) {
                if(_xmlRoot != null) {
                        NodeList list = 
_xmlRoot.getElementsByTagName(paramName);
                        if (list != null && list.getLength() > 0) {
@@ -336,11 +335,9 @@ public class DMLConfig
        }
        
        public synchronized String serializeDMLConfig() 
-               throws DMLRuntimeException
        {
                String ret = null;
-               try
-               {               
+               try {
                        Transformer transformer = 
TransformerFactory.newInstance().newTransformer();
                        
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
                        //transformer.setOutputProperty(OutputKeys.INDENT, 
"yes");
@@ -349,17 +346,14 @@ public class DMLConfig
                        transformer.transform(source, result);
                        ret = result.getWriter().toString();
                }
-               catch(Exception ex)
-               {
+               catch(Exception ex) {
                        throw new DMLRuntimeException("Unable to serialize DML 
config.", ex);
                }
                
                return ret;
        }
        
-       public static DMLConfig parseDMLConfig( String content ) 
-               throws DMLRuntimeException
-       {
+       public static DMLConfig parseDMLConfig( String content ) {
                DMLConfig ret = null;
                try {
                        DocumentBuilder builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
@@ -383,11 +377,10 @@ public class DMLConfig
         *
         * @param configPath User-defined path of the configuration file.
         * @return dml configuration
-        * @throws ParseException if ParseException occurs
         * @throws FileNotFoundException if FileNotFoundException occurs
         */
        public static DMLConfig readConfigurationFile(String configPath)
-               throws ParseException, FileNotFoundException
+               throws FileNotFoundException
        {
                // Always start with the internal defaults
                DMLConfig config = new DMLConfig();

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java 
b/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java
index 3b75d4b..d32d0e5 100644
--- a/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java
+++ b/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java
@@ -29,7 +29,6 @@ import org.apache.commons.lang.math.IntRange;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.parser.Expression.DataType;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.instructions.Instruction;
@@ -278,7 +277,7 @@ public class DMLDebuggerFunctions {
                        System.out.println("Symbol table for current frame is 
empty");
        }
        
-       public void print(LocalVariableMap variables, String varname, String 
displayFunction, int rowIndex, int colIndex) throws DMLRuntimeException {
+       public void print(LocalVariableMap variables, String varname, String 
displayFunction, int rowIndex, int colIndex) {
                if (varname == null) {
                        System.err.println("No matrix variable name entered.");
                        return;
@@ -357,9 +356,8 @@ public class DMLDebuggerFunctions {
         * Print DML matrix variable in current frame (if existing)
         * @param variables Current frame variables
         * @param varname Variable name
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public void printMatrixVariable(LocalVariableMap variables, String 
varname) throws DMLRuntimeException {
+       public void printMatrixVariable(LocalVariableMap variables, String 
varname) {
                if (varname == null) {
                        System.err.println("No matrix variable name entered.");
                        return;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 ed1bea3..567b3bd 100644
--- a/src/main/java/org/apache/sysml/debug/DebugState.java
+++ b/src/main/java/org/apache/sysml/debug/DebugState.java
@@ -58,9 +58,8 @@ public class DebugState
        /**
         * Getter for current frame's program counter
         * @return Current frame program counter
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public DMLProgramCounter getPC() throws DMLRuntimeException {
+       public DMLProgramCounter getPC() {
                if(!DMLScript.ENABLE_DEBUG_MODE) {
                        System.err.println("Error: This functionality (getPC) 
is available only in debug mode");
                        //// Fatal error to avoid unintentional bugs 

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 241dd86..3c5f157 100644
--- a/src/main/java/org/apache/sysml/hops/AggBinaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/AggBinaryOp.java
@@ -29,7 +29,6 @@ import org.apache.sysml.lops.DataPartition;
 import org.apache.sysml.lops.Group;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.lops.LopProperties.ExecType;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.MMCJ;
 import org.apache.sysml.lops.MMCJ.MMCJType;
 import org.apache.sysml.lops.MMRJ;
@@ -117,7 +116,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                HopsException.check(_input.size() == 2, this, "should have 
arity 2 but has arity %d", _input.size());
        }
 
@@ -177,7 +176,6 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
         */
        @Override
        public Lop constructLops() 
-               throws HopsException, LopsException
        {
                //return already created lops
                if( getLops() != null )
@@ -434,8 +432,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
        
        @Override
        protected ExecType optFindExecType()
-               throws HopsException 
-       {       
+       {
                checkAndSetForcedPlatform();
 
                ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? 
ExecType.SPARK : ExecType.MR;
@@ -489,7 +486,6 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
        }
        
        private boolean isApplicableForTransitiveSparkExecType(boolean left) 
-               throws HopsException 
        {
                int index = left ? 0 : 1;
                return !(getInput().get(index) instanceof DataOp && 
((DataOp)getInput().get(index)).requiresCheckpoint())
@@ -587,21 +583,16 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
        // CP Lops generation
        /////////////////////////
        
-       private void constructCPLopsTSMM( MMTSJType mmtsj, ExecType et ) 
-               throws HopsException, LopsException
-       {
+       private void constructCPLopsTSMM( MMTSJType mmtsj, ExecType et ) {
                int k = OptimizerUtils.getConstrainedNumThreads(_maxNumThreads);
-               
                Lop matmultCP = new 
MMTSJ(getInput().get(mmtsj.isLeft()?1:0).constructLops(),
-                                                getDataType(), getValueType(), 
et, mmtsj, false, k);
-       
+                       getDataType(), getValueType(), et, mmtsj, false, k);
                matmultCP.getOutputParameters().setDimensions(getDim1(), 
getDim2(), getRowsInBlock(), getColsInBlock(), getNnz());
                setLineNumbers( matmultCP );
                setLops(matmultCP);
        }
 
-       private void constructCPLopsMMChain( ChainType chain ) 
-               throws LopsException, HopsException
+       private void constructCPLopsMMChain( ChainType chain )
        {
                MapMultChain mapmmchain = null;
                if( chain == ChainType.XtXv ) {
@@ -632,12 +623,8 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
         * NOTE: exists for consistency since removeEmtpy might be scheduled to 
MR
         * but matrix mult on small output might be scheduled to CP. Hence, we 
         * need to handle directly passed selection vectors in CP as well.
-        * 
-        * @throws HopsException if HopsException occurs
-        * @throws LopsException if LopsException occurs
         */
        private void constructCPLopsPMM() 
-               throws HopsException, LopsException
        {
                Hop pmInput = getInput().get(0);
                Hop rightInput = getInput().get(1);
@@ -663,7 +650,6 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
        }
 
        private void constructCPLopsMM(ExecType et) 
-               throws HopsException, LopsException
        {
                Lop matmultCP = null;
                
@@ -701,7 +687,6 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
        }
 
        private Lop constructCPLopsMMWithLeftTransposeRewrite() 
-               throws HopsException, LopsException
        {
                Hop X = getInput().get(0).getInput().get(0); //guaranteed to 
exists
                Hop Y = getInput().get(1);
@@ -730,9 +715,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
        // Spark Lops generation
        /////////////////////////
 
-       private void constructSparkLopsTSMM(MMTSJType mmtsj, boolean multiPass) 
-               throws HopsException, LopsException
-       {
+       private void constructSparkLopsTSMM(MMTSJType mmtsj, boolean multiPass) 
{
                Hop input = getInput().get(mmtsj.isLeft()?1:0);
                MMTSJ tsmm = new MMTSJ(input.constructLops(), getDataType(), 
                                getValueType(), ExecType.SPARK, mmtsj, 
multiPass);
@@ -741,8 +724,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                setLops(tsmm);
        }
 
-       private void constructSparkLopsMapMM(MMultMethod method) 
-               throws LopsException, HopsException
+       private void constructSparkLopsMapMM(MMultMethod method)
        {
                Lop mapmult = null;
                if( isLeftTransposeRewriteApplicable(false, false) ) 
@@ -767,8 +749,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                setLops(mapmult);       
        }
 
-       private Lop constructSparkLopsMapMMWithLeftTransposeRewrite() 
-               throws HopsException, LopsException
+       private Lop constructSparkLopsMapMMWithLeftTransposeRewrite()
        {
                Hop X = getInput().get(0).getInput().get(0); //guaranteed to 
exists
                Hop Y = getInput().get(1);
@@ -794,9 +775,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                return out;
        }
 
-       private void constructSparkLopsMapMMChain(ChainType chain) 
-               throws LopsException, HopsException
-       {
+       private void constructSparkLopsMapMMChain(ChainType chain) {
                MapMultChain mapmmchain = null;
                if( chain == ChainType.XtXv ) {
                        Hop hX = getInput().get(0).getInput().get(0);
@@ -816,9 +795,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                setLops(mapmmchain);
        }
 
-       private void constructSparkLopsPMapMM() 
-               throws LopsException, HopsException
-       {
+       private void constructSparkLopsPMapMM() {
                PMapMult pmapmult = new PMapMult( 
                                getInput().get(0).constructLops(),
                                getInput().get(1).constructLops(), 
@@ -828,9 +805,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                setLops(pmapmult);
        }
 
-       private void constructSparkLopsCPMM() 
-               throws HopsException, LopsException
-       {
+       private void constructSparkLopsCPMM() {
                if( isLeftTransposeRewriteApplicable(false, false) )
                {
                        setLops( 
constructSparkLopsCPMMWithLeftTransposeRewrite() );
@@ -847,9 +822,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                }
        }
 
-       private Lop constructSparkLopsCPMMWithLeftTransposeRewrite() 
-               throws HopsException, LopsException
-       {
+       private Lop constructSparkLopsCPMMWithLeftTransposeRewrite() {
                SparkAggType aggtype = getSparkMMAggregationType(true);
                
                Hop X = getInput().get(0).getInput().get(0); //guaranteed to 
exists
@@ -872,19 +845,15 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                return out;
        }
 
-       private void constructSparkLopsRMM() 
-               throws LopsException, HopsException
-       {
+       private void constructSparkLopsRMM() {
                Lop rmm = new 
MMRJ(getInput().get(0).constructLops(),getInput().get(1).constructLops(), 
-                                         getDataType(), getValueType(), 
ExecType.SPARK);
+                       getDataType(), getValueType(), ExecType.SPARK);
                setOutputDimensions(rmm);
                setLineNumbers( rmm );
                setLops(rmm);
        }
 
-       private void constructSparkLopsPMM() 
-               throws HopsException, LopsException
-       {
+       private void constructSparkLopsPMM() {
                //PMM has two potential modes (a) w/ full permutation matrix 
input, and 
                //(b) w/ already condensed input vector of target row positions.
                
@@ -894,7 +863,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                Lop lpmInput = pmInput.constructLops();
                Hop nrow = null;
                double mestPM = OptimizerUtils.estimateSize(pmInput.getDim1(), 
1);
-               ExecType etVect = 
(mestPM>OptimizerUtils.getLocalMemBudget())?ExecType.MR:ExecType.CP;            
              
+               ExecType etVect = 
(mestPM>OptimizerUtils.getLocalMemBudget())?ExecType.MR:ExecType.CP;
                
                //a) full permutation matrix input (potentially without empty 
block materialized)
                if( pmInput.getDim2() != 1 ) //not a vector
@@ -939,12 +908,10 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                setLineNumbers(pmm);
                setLops(pmm);
                
-               HopRewriteUtils.removeChildReference(pmInput, nrow);            
+               HopRewriteUtils.removeChildReference(pmInput, nrow);
        } 
 
-       private void constructSparkLopsZIPMM() 
-               throws HopsException, LopsException
-       {
+       private void constructSparkLopsZIPMM() {
                //zipmm applies to t(X)%*%y if ncol(X)<=blocksize and it 
prevents 
                //unnecessary reshuffling by keeping the original indexes (and 
partitioning) 
                //joining the datasets, and internally doing the necessary 
transpose operations
@@ -965,8 +932,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
        // MR Lops generation
        /////////////////////////
 
-       private void constructMRLopsMapMM(MMultMethod method) 
-               throws HopsException, LopsException
+       private void constructMRLopsMapMM(MMultMethod method)
        {
                if( method == MMultMethod.MAPMM_R && 
isLeftTransposeRewriteApplicable(false, true) )
                {
@@ -1002,7 +968,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                                        
rightInput.getOutputParameters().setDimensions(input.getDim1(), 
input.getDim2(), getRowsInBlock(), getColsInBlock(), input.getNnz());
                                        setLineNumbers(rightInput);
                                }
-                       }                                       
+                       }
                        
                        //core matrix mult
                        MapMult mapmult = new MapMult( leftInput, rightInput, 
getDataType(), getValueType(), 
@@ -1027,11 +993,10 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                        else {
                                setLops(mapmult);
                        }
-               }       
+               }
        } 
 
-       private Lop constructMRLopsMapMMWithLeftTransposeRewrite() 
-               throws HopsException, LopsException
+       private Lop constructMRLopsMapMMWithLeftTransposeRewrite()
        {
                Hop X = getInput().get(0).getInput().get(0); //guaranteed to 
exists
                Hop Y = getInput().get(1);
@@ -1087,8 +1052,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                return out;
        }
 
-       private void constructMRLopsMapMMChain( ChainType chainType ) 
-               throws HopsException, LopsException
+       private void constructMRLopsMapMMChain( ChainType chainType )
        {
                Lop mapmult = null; 
                
@@ -1140,8 +1104,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                setLops(agg1);
        } 
 
-       private void constructMRLopsCPMM() 
-               throws HopsException, LopsException
+       private void constructMRLopsCPMM()
        {
                if( isLeftTransposeRewriteApplicable(false, false) )
                {
@@ -1172,9 +1135,7 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                }
        } 
 
-       private Lop constructMRLopsCPMMWithLeftTransposeRewrite() 
-               throws HopsException, LopsException
-       {
+       private Lop constructMRLopsCPMMWithLeftTransposeRewrite() {
                Hop X = getInput().get(0).getInput().get(0); //guaranteed to 
exists
                Hop Y = getInput().get(1);
                
@@ -1208,36 +1169,27 @@ public class AggBinaryOp extends Hop implements 
MultiThreadedHop
                return out;
        }
 
-       private void constructMRLopsRMM() 
-               throws HopsException, LopsException
-       {
+       private void constructMRLopsRMM() {
                MMRJ rmm = new MMRJ(getInput().get(0).constructLops(), 
getInput().get(1).constructLops(), 
-                                           getDataType(), getValueType(), 
ExecType.MR);
-               
+                       getDataType(), getValueType(), ExecType.MR);
                setOutputDimensions(rmm);
                setLineNumbers(rmm);
                setLops(rmm);
        } 
 
-       private void constructMRLopsTSMM(MMTSJType mmtsj) 
-               throws HopsException, LopsException
-       {
+       private void constructMRLopsTSMM(MMTSJType mmtsj) {
                Hop input = getInput().get(mmtsj.isLeft()?1:0);
-               
                MMTSJ tsmm = new MMTSJ(input.constructLops(), getDataType(), 
getValueType(), ExecType.MR, mmtsj);
                tsmm.getOutputParameters().setDimensions(getDim1(), getDim2(), 
getRowsInBlock(), getColsInBlock(), getNnz());
                setLineNumbers(tsmm);
-               
                Aggregate agg1 = new Aggregate(tsmm, HopsAgg2Lops.get(outerOp), 
getDataType(), getValueType(), ExecType.MR);
                agg1.getOutputParameters().setDimensions(getDim1(), getDim2(), 
getRowsInBlock(), getColsInBlock(), getNnz());
                agg1.setupCorrectionLocation(CorrectionLocationType.NONE); // 
aggregation uses kahanSum but the inputs do not have correction values
                setLineNumbers(agg1);
-               
                setLops(agg1);
-       } 
+       }
 
        private void constructMRLopsPMM() 
-               throws HopsException, LopsException
        {
                //PMM has two potential modes (a) w/ full permutation matrix 
input, and 
                //(b) w/ already condensed input vector of target row positions.

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/AggUnaryOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/AggUnaryOp.java 
b/src/main/java/org/apache/sysml/hops/AggUnaryOp.java
index 79c1610..136d2d6 100644
--- a/src/main/java/org/apache/sysml/hops/AggUnaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/AggUnaryOp.java
@@ -29,7 +29,6 @@ import org.apache.sysml.lops.Binary;
 import org.apache.sysml.lops.ConvolutionTransform;
 import org.apache.sysml.lops.Group;
 import org.apache.sysml.lops.Lop;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.PartialAggregate;
 import org.apache.sysml.lops.PartialAggregate.DirectionTypes;
 import org.apache.sysml.lops.TernaryAggregate;
@@ -74,7 +73,7 @@ public class AggUnaryOp extends Hop implements 
MultiThreadedHop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                HopsException.check(_input.size() == 1, this, "should have 
arity 1 but has arity %d", _input.size());
        }
 
@@ -148,8 +147,7 @@ public class AggUnaryOp extends Hop implements 
MultiThreadedHop
        
        @Override
        public Lop constructLops()
-               throws HopsException, LopsException 
-       {       
+       {
                //return already created lops
                if( getLops() != null )
                        return getLops();
@@ -473,14 +471,14 @@ public class AggUnaryOp extends Hop implements 
MultiThreadedHop
        
 
        @Override
-       protected ExecType optFindExecType() throws HopsException {
+       protected ExecType optFindExecType() {
                
                checkAndSetForcedPlatform();
                
                ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? 
ExecType.SPARK : ExecType.MR;
                
                //forced / memory-based / threshold-based decision
-               if( _etypeForced != null )                      
+               if( _etypeForced != null )
                {
                        _etype = _etypeForced;
                }
@@ -547,7 +545,6 @@ public class AggUnaryOp extends Hop implements 
MultiThreadedHop
        }
 
        private boolean isTernaryAggregateRewriteApplicable() 
-               throws HopsException 
        {
                boolean ret = false;
                
@@ -701,7 +698,6 @@ public class AggUnaryOp extends Hop implements 
MultiThreadedHop
        }
 
        private Lop constructLopsTernaryAggregateRewrite(ExecType et) 
-               throws HopsException, LopsException
        {
                BinaryOp input1 = (BinaryOp)getInput().get(0);
                Hop input11 = input1.getInput().get(0);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 279d14d..35d40c5 100644
--- a/src/main/java/org/apache/sysml/hops/BinaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/BinaryOp.java
@@ -43,7 +43,6 @@ import org.apache.sysml.lops.DataPartition;
 import org.apache.sysml.lops.Group;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.lops.LopProperties.ExecType;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.PartialAggregate;
 import org.apache.sysml.lops.PickByCount;
 import org.apache.sysml.lops.RepMat;
@@ -112,7 +111,7 @@ public class BinaryOp extends Hop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                HopsException.check(_input.size() == 2, this, "should have 
arity 2 but has arity %d", _input.size());
        }
 
@@ -184,8 +183,7 @@ public class BinaryOp extends Hop
        
        @Override
        public Lop constructLops() 
-               throws HopsException, LopsException 
-       {       
+       {
                //return already created lops
                if( getLops() != null )
                        return getLops();
@@ -231,7 +229,7 @@ public class BinaryOp extends Hop
                return getLops();
        }
        
-       private void constructLopsIQM(ExecType et) throws HopsException, 
LopsException {
+       private void constructLopsIQM(ExecType et) {
                if ( et == ExecType.MR ) {
                        CombineBinary combine = 
CombineBinary.constructCombineLop(
                                        OperationTypes.PreSort, (Lop) 
getInput().get(0)
@@ -329,7 +327,7 @@ public class BinaryOp extends Hop
                }
        }
        
-       private void constructLopsMedian(ExecType et) throws HopsException, 
LopsException {
+       private void constructLopsMedian(ExecType et) {
                if ( et == ExecType.MR ) {
                        CombineBinary combine = CombineBinary
                                        .constructCombineLop(
@@ -400,7 +398,6 @@ public class BinaryOp extends Hop
        }
        
        private void constructLopsCentralMoment(ExecType et) 
-               throws HopsException, LopsException 
        {
                // The output data type is a SCALAR if central moment 
                // gets computed in CP/SPARK, and it will be MATRIX otherwise.
@@ -427,9 +424,7 @@ public class BinaryOp extends Hop
                }
        }
 
-       private void constructLopsCovariance(ExecType et) 
-               throws LopsException, HopsException 
-       {
+       private void constructLopsCovariance(ExecType et) {
                if ( et == ExecType.MR ) {
                        // combineBinary -> CoVariance -> CastAsScalar
                        CombineBinary combine = 
CombineBinary.constructCombineLop(
@@ -469,7 +464,7 @@ public class BinaryOp extends Hop
                }
        }
        
-       private void constructLopsQuantile(ExecType et) throws HopsException, 
LopsException {
+       private void constructLopsQuantile(ExecType et) {
                // 1st arguments needs to be a 1-dimensional matrix
                // For QUANTILE: 2nd argument is scalar or 1-dimensional matrix
                // For INTERQUANTILE: 2nd argument is always a scalar
@@ -540,7 +535,6 @@ public class BinaryOp extends Hop
        }
 
        private void constructLopsAppend(ExecType et) 
-               throws HopsException, LopsException 
        {
                DataType dt1 = getInput().get(0).getDataType();
                DataType dt2 = getInput().get(1).getDataType();
@@ -593,7 +587,6 @@ public class BinaryOp extends Hop
        }
 
        private void constructLopsBinaryDefault() 
-               throws HopsException, LopsException 
        {
                /* Default behavior for BinaryOp */
                // it depends on input data types
@@ -995,7 +988,7 @@ public class BinaryOp extends Hop
        }
        
        @Override
-       protected ExecType optFindExecType() throws HopsException {
+       protected ExecType optFindExecType() {
                
                checkAndSetForcedPlatform();
                
@@ -1088,11 +1081,8 @@ public class BinaryOp extends Hop
         * @param cbind true if cbind
         * @param current current high-level operator
         * @return low-level operator
-        * @throws HopsException if HopsException occurs
-        * @throws LopsException if LopsException occurs
         */
-       public static Lop constructMRAppendLop( Hop left, Hop right, DataType 
dt, ValueType vt, boolean cbind, Hop current ) 
-               throws HopsException, LopsException
+       public static Lop constructMRAppendLop( Hop left, Hop right, DataType 
dt, ValueType vt, boolean cbind, Hop current )
        {
                Lop ret = null;
                
@@ -1178,7 +1168,6 @@ public class BinaryOp extends Hop
        }
 
        public static Lop constructSPAppendLop( Hop left, Hop right, DataType 
dt, ValueType vt, boolean cbind, Hop current ) 
-               throws HopsException, LopsException
        {
                Lop ret = null;
                
@@ -1234,12 +1223,8 @@ public class BinaryOp extends Hop
         * @param cbind ?
         * @param current ?
         * @return low-level operator
-        * @throws HopsException if HopsException occurs
-        * @throws LopsException if LopsException occurs
         */
-       public static Lop constructAppendLopChain( Hop left, Hop right1, Hop 
right2, DataType dt, ValueType vt, boolean cbind, Hop current ) 
-               throws HopsException, LopsException
-       {
+       public static Lop constructAppendLopChain( Hop left, Hop right1, Hop 
right2, DataType dt, ValueType vt, boolean cbind, Hop current ) {
                long m1_dim1 = left.getDim1();
                long m1_dim2 = left.getDim2();
                long m2_dim1 = right1.getDim1();

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 410a83a..c137462 100644
--- a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
+++ b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
@@ -26,7 +26,6 @@ import org.apache.sysml.lops.ConvolutionTransform;
 import org.apache.sysml.lops.ConvolutionTransform.OperationTypes;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.lops.LopProperties.ExecType;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
@@ -81,7 +80,7 @@ public class ConvolutionOp extends Hop  implements 
MultiThreadedHop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                HopsException.check(_input.size() >= 1, this, "should have at 
least one input but has %d inputs", _input.size());
        }
 
@@ -107,7 +106,6 @@ public class ConvolutionOp extends Hop  implements 
MultiThreadedHop
        
        @Override
        public Lop constructLops()
-               throws HopsException, LopsException 
        {
                //return already created lops
                if( getLops() != null )
@@ -213,10 +211,8 @@ public class ConvolutionOp extends Hop  implements 
MultiThreadedHop
         * If corresponding output lop is not found or if this is not a 
max_pool_backward operation, this function returns null
         * 
         * @return output lop of max_pool/avg_pool operation with same 
parameters as this hop
-        * @throws HopsException if error 
-        * @throws LopsException if error
         */
-       private Lop getMaxPoolOutputLop() throws HopsException, LopsException {
+       private Lop getMaxPoolOutputLop() {
                if(op == ConvOp.MAX_POOLING_BACKWARD || op == 
ConvOp.AVG_POOLING_BACKWARD) {
                        ConvOp opType = (op == ConvOp.MAX_POOLING_BACKWARD) ? 
ConvOp.MAX_POOLING : ConvOp.AVG_POOLING;
                        Hop inputImage = getInput().get(0);
@@ -232,7 +228,7 @@ public class ConvolutionOp extends Hop  implements 
MultiThreadedHop
                return null;
        }
        
-       public Lop constructConvolutionLops(ExecType et, ArrayList<Hop> inputs) 
throws HopsException, LopsException {
+       public Lop constructConvolutionLops(ExecType et, ArrayList<Hop> inputs) 
{
                if(inputs.size() != getNumExpectedInputs()) 
                        throw new HopsException("Incorrect number of inputs for 
" + op.name());
                
@@ -533,7 +529,7 @@ public class ConvolutionOp extends Hop  implements 
MultiThreadedHop
        }
        
        @Override
-       protected ExecType optFindExecType() throws HopsException {
+       protected ExecType optFindExecType() {
                
                checkAndSetForcedPlatform();
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 6980cd3..3e271d5 100644
--- a/src/main/java/org/apache/sysml/hops/DataGenOp.java
+++ b/src/main/java/org/apache/sysml/hops/DataGenOp.java
@@ -29,7 +29,6 @@ import org.apache.sysml.hops.rewrite.HopRewriteUtils;
 import org.apache.sysml.hops.Hop.MultiThreadedHop;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.lops.DataGen;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.LopProperties.ExecType;
 import org.apache.sysml.parser.DataIdentifier;
 import org.apache.sysml.parser.DataExpression;
@@ -119,7 +118,7 @@ public class DataGenOp extends Hop implements 
MultiThreadedHop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                int sz = _input.size();
                int pz = _paramIndexMap.size();
                HopsException.check(sz == pz, this, "has %d inputs but %d 
parameters", sz, pz);
@@ -151,7 +150,6 @@ public class DataGenOp extends Hop implements 
MultiThreadedHop
        
        @Override
        public Lop constructLops() 
-               throws HopsException, LopsException
        {
                //return already created lops
                if( getLops() != null )
@@ -274,13 +272,12 @@ public class DataGenOp extends Hop implements 
MultiThreadedHop
        }
 
        @Override
-       protected ExecType optFindExecType() throws HopsException {
-               
+       protected ExecType optFindExecType() {
                checkAndSetForcedPlatform();
 
                ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? 
ExecType.SPARK : ExecType.MR;
                
-               if( _etypeForced != null )                      
+               if( _etypeForced != null )
                        _etype = _etypeForced;
                else 
                {

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 2495997..fd3665f 100644
--- a/src/main/java/org/apache/sysml/hops/DataOp.java
+++ b/src/main/java/org/apache/sysml/hops/DataOp.java
@@ -188,7 +188,7 @@ public class DataOp extends Hop
 
        /** Check for N (READ) or N+1 (WRITE) inputs. */
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                int sz = _input.size();
                int pz = _paramIndexMap.size();
                switch (_dataop) {
@@ -247,8 +247,7 @@ public class DataOp extends Hop
        
        @Override
        public Lop constructLops()
-                       throws HopsException, LopsException 
-       {       
+       {
                //return already created lops
                if( getLops() != null )
                        return getLops();
@@ -441,7 +440,6 @@ public class DataOp extends Hop
        
        @Override
        protected ExecType optFindExecType() 
-               throws HopsException 
        {
                //MB: find exec type has two meanings here: (1) for write it 
means the actual
                //exec type, while (2) for read it affects the recompilation 
decision as needed

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 49000e2..3631f00 100644
--- a/src/main/java/org/apache/sysml/hops/FunctionOp.java
+++ b/src/main/java/org/apache/sysml/hops/FunctionOp.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
 import org.apache.sysml.lops.FunctionCallCP;
 import org.apache.sysml.lops.FunctionCallCPSingle;
 import org.apache.sysml.lops.Lop;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.LopProperties.ExecType;
 import org.apache.sysml.parser.DMLProgram;
 import org.apache.sysml.parser.Expression.DataType;
@@ -84,7 +83,7 @@ public class FunctionOp extends Hop
 
        /** FunctionOps may have any number of inputs. */
        @Override
-       public void checkArity() throws HopsException {}
+       public void checkArity() {}
        
        public String getFunctionKey() {
                return DMLProgram.constructFunctionKey(
@@ -221,7 +220,6 @@ public class FunctionOp extends Hop
        
        @Override
        public Lop constructLops() 
-               throws HopsException, LopsException 
        {
                //return already created lops
                if( getLops() != null )
@@ -253,7 +251,6 @@ public class FunctionOp extends Hop
 
        @Override
        protected ExecType optFindExecType() 
-               throws HopsException 
        {
                checkAndSetForcedPlatform();
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 0ced336..8d799f9 100644
--- a/src/main/java/org/apache/sysml/hops/Hop.java
+++ b/src/main/java/org/apache/sysml/hops/Hop.java
@@ -151,9 +151,8 @@ public abstract class Hop implements ParseInfo
         *
         * Parameterized Hops (such as DataOp) can check that the number of 
parameters matches the number of inputs.
         *
-        * @throws HopsException if this Hop has an illegal number of inputs (a 
kind of Illegal State)
         */
-       public abstract void checkArity() throws HopsException;
+       public abstract void checkArity();
        
        public ExecType getExecType()
        {
@@ -282,9 +281,7 @@ public abstract class Hop implements ParseInfo
                return _requiresCompression;
        }
        
-       public void constructAndSetLopsDataFlowProperties() 
-               throws HopsException
-       {
+       public void constructAndSetLopsDataFlowProperties() {
                //Step 1: construct reblock lop if required (output of hop)
                constructAndSetReblockLopIfRequired();
                
@@ -296,7 +293,6 @@ public abstract class Hop implements ParseInfo
        }
 
        private void constructAndSetReblockLopIfRequired() 
-               throws HopsException
        {
                //determine execution type
                ExecType et = ExecType.CP;
@@ -337,9 +333,7 @@ public abstract class Hop implements ParseInfo
                }
        }
 
-       private void constructAndSetCheckpointLopIfRequired() 
-               throws HopsException
-       {
+       private void constructAndSetCheckpointLopIfRequired() {
                //determine execution type
                ExecType et = ExecType.CP;
                if( OptimizerUtils.isSparkExecutionMode() 
@@ -397,7 +391,6 @@ public abstract class Hop implements ParseInfo
        }
 
        private void constructAndSetCompressionLopIfRequired() 
-               throws HopsException
        {
                //determine execution type
                ExecType et = ExecType.CP;
@@ -435,7 +428,6 @@ public abstract class Hop implements ParseInfo
        }
 
        public static Lop createOffsetLop( Hop hop, boolean repCols ) 
-               throws HopsException, LopsException
        {
                Lop offset = null;
                
@@ -819,11 +811,9 @@ public abstract class Hop implements ParseInfo
                return _updateType;
        }
 
-       public abstract Lop constructLops() 
-               throws HopsException, LopsException;
+       public abstract Lop constructLops();
 
-       protected abstract ExecType optFindExecType() 
-               throws HopsException;
+       protected abstract ExecType optFindExecType();
        
        public abstract String getOpString();
 
@@ -1000,9 +990,7 @@ public abstract class Hop implements ParseInfo
                return OptimizerUtils.getSparsity(_dim1, _dim2, _nnz);
        }
        
-       protected void setOutputDimensions(Lop lop) 
-               throws HopsException
-       {
+       protected void setOutputDimensions(Lop lop) {
                lop.getOutputParameters().setDimensions(
                        getDim1(), getDim2(), getRowsInBlock(), 
getColsInBlock(), getNnz(), getUpdateType());   
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/HopsException.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/HopsException.java 
b/src/main/java/org/apache/sysml/hops/HopsException.java
index 17d9a09..7979da1 100644
--- a/src/main/java/org/apache/sysml/hops/HopsException.java
+++ b/src/main/java/org/apache/sysml/hops/HopsException.java
@@ -50,9 +50,8 @@ public class HopsException extends DMLException
      * @param condition Condition to test
      * @param message Message to print if the condition fails
      * @param objects Objects to print with the message, as per String.format
-     * @throws HopsException Thrown if condition is false
      */
-    public static void check(boolean condition, String message, Object... 
objects) throws HopsException {
+    public static void check(boolean condition, String message, Object... 
objects) {
         if (!condition)
             throw new HopsException(String.format(message, objects));
     }
@@ -62,9 +61,8 @@ public class HopsException extends DMLException
      * @param hop Hop to print as a cause of the problem, if the condition 
fails
      * @param message Message to print if the condition fails
      * @param objects Objects to print with the message, as per String.format
-     * @throws HopsException Thrown if condition is false
      */
-    public static void check(boolean condition, Hop hop, String message, 
Object... objects) throws HopsException {
+    public static void check(boolean condition, Hop hop, String message, 
Object... objects) {
         if (!condition)
             throw new HopsException(String.format(hop.getOpString()+" 
id="+hop.getHopID()+" "+message, objects));
     }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 0b8509a..c265d59 100644
--- a/src/main/java/org/apache/sysml/hops/IndexingOp.java
+++ b/src/main/java/org/apache/sysml/hops/IndexingOp.java
@@ -26,7 +26,6 @@ import org.apache.sysml.lops.Aggregate;
 import org.apache.sysml.lops.Data;
 import org.apache.sysml.lops.Group;
 import org.apache.sysml.lops.Lop;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.RightIndex;
 import org.apache.sysml.lops.LopProperties.ExecType;
 import org.apache.sysml.parser.Expression.DataType;
@@ -76,7 +75,7 @@ public class IndexingOp extends Hop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                HopsException.check(_input.size() == 5, this, "should have 5 
inputs but has %d inputs", _input.size());
        }
 
@@ -116,8 +115,7 @@ public class IndexingOp extends Hop
 
        @Override
        public Lop constructLops()
-               throws HopsException, LopsException 
-       {       
+       {
                //return already created lops
                if( getLops() != null )
                        return getLops();
@@ -362,13 +360,13 @@ public class IndexingOp extends Hop
        }
 
        @Override
-       protected ExecType optFindExecType() throws HopsException {
+       protected ExecType optFindExecType() {
                
                checkAndSetForcedPlatform();
 
                ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? 
ExecType.SPARK : ExecType.MR;
                
-               if( _etypeForced != null )                      
+               if( _etypeForced != null )
                {
                        _etype = _etypeForced;
                }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java 
b/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java
index 2ca90ab..ba355e2 100644
--- a/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java
+++ b/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java
@@ -25,7 +25,6 @@ import org.apache.sysml.lops.Group;
 import org.apache.sysml.lops.LeftIndex;
 import org.apache.sysml.lops.LeftIndex.LixCacheType;
 import org.apache.sysml.lops.Lop;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.RightIndex;
 import org.apache.sysml.lops.UnaryCP;
 import org.apache.sysml.lops.ZeroOut;
@@ -78,7 +77,7 @@ public class LeftIndexingOp  extends Hop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                HopsException.check(_input.size() == 6, this, "should have 6 
inputs but has %d inputs", 6);
        }
 
@@ -105,8 +104,7 @@ public class LeftIndexingOp  extends Hop
        
        @Override
        public Lop constructLops()
-               throws HopsException, LopsException 
-       {                       
+       {
                //return already created lops
                if( getLops() != null )
                        return getLops();
@@ -361,13 +359,13 @@ public class LeftIndexingOp  extends Hop
        
        
        @Override
-       protected ExecType optFindExecType() throws HopsException {
+       protected ExecType optFindExecType() {
                
                checkAndSetForcedPlatform();
                
                ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? 
ExecType.SPARK : ExecType.MR;
                
-               if( _etypeForced != null )                      
+               if( _etypeForced != null )
                {
                        _etype = _etypeForced;
                }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/LiteralOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/LiteralOp.java 
b/src/main/java/org/apache/sysml/hops/LiteralOp.java
index d385d6b..6747708 100644
--- a/src/main/java/org/apache/sysml/hops/LiteralOp.java
+++ b/src/main/java/org/apache/sysml/hops/LiteralOp.java
@@ -70,7 +70,7 @@ public class LiteralOp extends Hop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                HopsException.check(_input.isEmpty(), this, "should have 0 
inputs but has %d inputs", _input.size());
        }
        
@@ -81,8 +81,7 @@ public class LiteralOp extends Hop
 
        @Override
        public Lop constructLops()
-               throws HopsException, LopsException  
-       {       
+       {
                //return already created lops
                if( getLops() != null )
                        return getLops();
@@ -187,7 +186,7 @@ public class LiteralOp extends Hop
        }       
        
        @Override
-       protected ExecType optFindExecType() throws HopsException {
+       protected ExecType optFindExecType() {
                // Since a Literal hop does not represent any computation, 
                // this function is not applicable. 
                return null;
@@ -214,7 +213,7 @@ public class LiteralOp extends Hop
                }
        }
        
-       public double getDoubleValue() throws HopsException {
+       public double getDoubleValue() {
                switch( getValueType() ) {
                        case INT:
                                return value_long;
@@ -229,7 +228,7 @@ public class LiteralOp extends Hop
                }
        }
        
-       public boolean getBooleanValue() throws HopsException {
+       public boolean getBooleanValue() {
                switch( getValueType() ) {
                        case INT:
                                return (value_long != 0);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/NaryOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/NaryOp.java 
b/src/main/java/org/apache/sysml/hops/NaryOp.java
index 1a6da2e..4b950de 100644
--- a/src/main/java/org/apache/sysml/hops/NaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/NaryOp.java
@@ -22,7 +22,6 @@ package org.apache.sysml.hops;
 import org.apache.sysml.hops.rewrite.HopRewriteUtils;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.lops.LopProperties.ExecType;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.Nary;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.parser.Expression.ValueType;
@@ -53,14 +52,11 @@ public class NaryOp extends Hop {
         *            the operation type (such as PRINTF)
         * @param inputs
         *            a variable number of input Hops
-        * @throws HopsException
-        *             thrown if a HopsException occurs
         */
        public NaryOp(String name, DataType dataType, ValueType valueType,
-                       OpOpN op, Hop... inputs) throws HopsException {
+                       OpOpN op, Hop... inputs) {
                super(name, dataType, valueType);
                _op = op;
-
                for (int i = 0; i < inputs.length; i++) {
                        getInput().add(i, inputs[i]);
                        inputs[i].getParent().add(this);
@@ -69,7 +65,7 @@ public class NaryOp extends Hop {
 
        /** MultipleOp may have any number of inputs. */
        @Override
-       public void checkArity() throws HopsException {}
+       public void checkArity() {}
 
        public OpOpN getOp() {
                return _op;
@@ -89,7 +85,7 @@ public class NaryOp extends Hop {
         * Construct the corresponding Lops for this Hop
         */
        @Override
-       public Lop constructLops() throws HopsException, LopsException {
+       public Lop constructLops() {
                // reuse existing lop
                if (getLops() != null)
                        return getLops();
@@ -131,7 +127,7 @@ public class NaryOp extends Hop {
        }
 
        @Override
-       protected ExecType optFindExecType() throws HopsException {
+       protected ExecType optFindExecType() {
                
                checkAndSetForcedPlatform();
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 274abad..e9fe24e 100644
--- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
+++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
@@ -919,9 +919,7 @@ public class OptimizerUtils
                        + Dag.getNextUniqueFilenameSuffix();
        }
 
-       public static boolean allowsToFilterEmptyBlockOutputs( Hop hop ) 
-               throws HopsException
-       {
+       public static boolean allowsToFilterEmptyBlockOutputs( Hop hop ) {
                boolean ret = true;
                for( Hop p : hop.getParent() ) {
                        p.optFindExecType(); //ensure exec type evaluated
@@ -1206,10 +1204,8 @@ public class OptimizerUtils
         * @param root the root high-level operator
         * @param valMemo ?
         * @return size expression
-        * @throws HopsException if HopsException occurs
         */
        public static long rEvalSimpleLongExpression( Hop root, HashMap<Long, 
Long> valMemo ) 
-               throws HopsException
        {
                long ret = Long.MAX_VALUE;
                
@@ -1223,7 +1219,6 @@ public class OptimizerUtils
        }
        
        public static long rEvalSimpleLongExpression( Hop root, HashMap<Long, 
Long> valMemo, LocalVariableMap vars ) 
-               throws HopsException
        {
                long ret = Long.MAX_VALUE;
                
@@ -1237,7 +1232,6 @@ public class OptimizerUtils
        }
        
        public static double rEvalSimpleDoubleExpression( Hop root, 
HashMap<Long, Double> valMemo ) 
-               throws HopsException
        {
                //memoization (prevent redundant computation of common subexpr)
                if( valMemo.containsKey(root.getHopID()) )
@@ -1263,7 +1257,6 @@ public class OptimizerUtils
        }
        
        public static double rEvalSimpleDoubleExpression( Hop root, 
HashMap<Long, Double> valMemo, LocalVariableMap vars ) 
-               throws HopsException
        {
                //memoization (prevent redundant computation of common subexpr)
                if( valMemo.containsKey(root.getHopID()) )
@@ -1292,7 +1285,6 @@ public class OptimizerUtils
        }
 
        protected static double rEvalSimpleUnaryDoubleExpression( Hop root, 
HashMap<Long, Double> valMemo ) 
-               throws HopsException
        {
                //memoization (prevent redundant computation of common subexpr)
                if( valMemo.containsKey(root.getHopID()) )
@@ -1331,7 +1323,6 @@ public class OptimizerUtils
        }
 
        protected static double rEvalSimpleUnaryDoubleExpression( Hop root, 
HashMap<Long, Double> valMemo, LocalVariableMap vars ) 
-               throws HopsException
        {
                //memoization (prevent redundant computation of common subexpr)
                if( valMemo.containsKey(root.getHopID()) )
@@ -1370,7 +1361,6 @@ public class OptimizerUtils
        }
 
        protected static double rEvalSimpleBinaryDoubleExpression( Hop root, 
HashMap<Long, Double> valMemo ) 
-               throws HopsException
        {
                //memoization (prevent redundant computation of common subexpr)
                if( valMemo.containsKey(root.getHopID()) )
@@ -1406,7 +1396,6 @@ public class OptimizerUtils
        }
 
        protected static double rEvalSimpleBinaryDoubleExpression( Hop root, 
HashMap<Long, Double> valMemo, LocalVariableMap vars ) 
-               throws HopsException
        {
                //memoization (prevent redundant computation of common subexpr)
                if( valMemo.containsKey(root.getHopID()) )

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 a1cea17..35ed54b 100644
--- a/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java
+++ b/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java
@@ -33,7 +33,6 @@ import org.apache.sysml.lops.GroupedAggregate;
 import org.apache.sysml.lops.GroupedAggregateM;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.lops.LopProperties.ExecType;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.PMMJ;
 import org.apache.sysml.lops.PartialAggregate.CorrectionLocationType;
 import org.apache.sysml.lops.ParameterizedBuiltin;
@@ -109,7 +108,7 @@ public class ParameterizedBuiltinOp extends Hop implements 
MultiThreadedHop
        }
 
        @Override
-       public void checkArity() throws HopsException {
+       public void checkArity() {
                int sz = _input.size();
                int pz = _paramIndexMap.size();
                HopsException.check(sz == pz, this, "has %d inputs but %d 
parameters", sz, pz);
@@ -158,8 +157,7 @@ public class ParameterizedBuiltinOp extends Hop implements 
MultiThreadedHop
        
        @Override
        public Lop constructLops() 
-               throws HopsException, LopsException 
-       {               
+       {
                //return already created lops
                if( getLops() != null )
                        return getLops();
@@ -213,7 +211,6 @@ public class ParameterizedBuiltinOp extends Hop implements 
MultiThreadedHop
        }
        
        private void constructLopsGroupedAggregate(HashMap<String, Lop> 
inputlops, ExecType et) 
-               throws HopsException, LopsException 
        {
                //reset reblock requirement (see MR aggregate / construct lops)
                setRequiresReblock( false );
@@ -403,7 +400,6 @@ public class ParameterizedBuiltinOp extends Hop implements 
MultiThreadedHop
        }
 
        private void constructLopsRemoveEmpty(HashMap<String, Lop> inputlops, 
ExecType et) 
-               throws HopsException, LopsException 
        {
                Hop targetHop = getTargetHop();
                Hop marginHop = getParameterHop("margin");
@@ -749,7 +745,6 @@ public class ParameterizedBuiltinOp extends Hop implements 
MultiThreadedHop
        }
 
        private void constructLopsRExpand(HashMap<String, Lop> inputlops, 
ExecType et) 
-               throws HopsException, LopsException 
        {
                if( et == ExecType.CP || et == ExecType.SPARK )
                {
@@ -1040,7 +1035,6 @@ public class ParameterizedBuiltinOp extends Hop 
implements MultiThreadedHop
        
        @Override
        protected ExecType optFindExecType() 
-               throws HopsException 
        {
                checkAndSetForcedPlatform();
 

Reply via email to