[SYSTEMML-616] Cleanup exception handling (stage 1, remove unnecessary)

This patch removes the following unused or unnecessary exceptions:
1) AppException
2) CacheIOException (now CacheException)
3) CacheStatusException (now CacheException)
4) DMLUnsupportedOperationException (now DMLRuntimeException)

Furthermore, this patch also includes a fix for the frame read/write
test (cleanup of generated files).

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

Branch: refs/heads/master
Commit: 6c89c3a7a4f836c30c8be64861f051018b7d0c52
Parents: d9e0748
Author: Matthias Boehm <[email protected]>
Authored: Tue Apr 5 00:17:38 2016 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Tue Apr 5 00:36:54 2016 -0700

----------------------------------------------------------------------
 .../java/org/apache/sysml/api/DMLScript.java    |  14 +--
 .../sysml/hops/cost/CostEstimationWrapper.java  |  10 +-
 .../apache/sysml/hops/cost/CostEstimator.java   |  22 ++--
 .../sysml/hops/cost/CostEstimatorNumMRJobs.java |   5 +-
 .../hops/cost/CostEstimatorStaticRuntime.java   |  23 ++--
 .../sysml/hops/globalopt/GDFEnumOptimizer.java  |  17 +--
 .../sysml/hops/globalopt/GlobalOptimizer.java   |   3 +-
 .../hops/globalopt/GlobalOptimizerWrapper.java  |   6 +-
 .../apache/sysml/hops/recompile/Recompiler.java |  40 ++----
 .../hops/rewrite/RewriteConstantFolding.java    |   4 +-
 .../java/org/apache/sysml/lops/compile/Dag.java |  43 ++-----
 .../apache/sysml/lops/runtime/RunMRJobs.java    |   6 +-
 .../org/apache/sysml/parser/DMLProgram.java     |  11 +-
 .../DMLUnsupportedOperationException.java       |  32 -----
 .../runtime/controlprogram/ForProgramBlock.java |   3 +-
 .../controlprogram/FunctionProgramBlock.java    |   3 +-
 .../runtime/controlprogram/IfProgramBlock.java  |   6 +-
 .../controlprogram/ParForProgramBlock.java      |  27 ++---
 .../sysml/runtime/controlprogram/Program.java   |   3 +-
 .../runtime/controlprogram/ProgramBlock.java    |  13 +-
 .../controlprogram/WhileProgramBlock.java       |   5 +-
 .../caching/CacheIOException.java               |  49 --------
 .../caching/CacheStatusException.java           |  44 -------
 .../controlprogram/caching/CacheableData.java   |  18 ++-
 .../controlprogram/caching/FrameObject.java     |   4 +-
 .../controlprogram/caching/MatrixObject.java    |  52 ++++----
 .../context/SparkExecutionContext.java          |  27 ++---
 .../parfor/DataPartitionerLocal.java            |   4 +-
 .../DataPartitionerRemoteSparkMapper.java       |   3 +-
 .../DataPartitionerRemoteSparkReducer.java      |   3 +-
 .../controlprogram/parfor/ParWorker.java        |  10 +-
 .../controlprogram/parfor/ProgramConverter.java | 116 +++++++-----------
 .../parfor/RemoteDPParForSpark.java             |   4 +-
 .../parfor/RemoteDPParForSparkWorker.java       |   6 +-
 .../parfor/RemoteParForSpark.java               |   4 +-
 .../parfor/RemoteParForSparkWorker.java         |   6 +-
 .../parfor/opt/OptTreeConverter.java            |  24 ++--
 .../parfor/opt/OptimizationWrapper.java         |  10 +-
 .../controlprogram/parfor/opt/Optimizer.java    |   4 +-
 .../parfor/opt/OptimizerConstrained.java        |   3 +-
 .../parfor/opt/OptimizerRuleBased.java          |  36 ++----
 .../controlprogram/parfor/opt/PerfTestTool.java |  25 ++--
 .../parfor/opt/ProgramRecompiler.java           |  21 ++--
 .../sysml/runtime/functionobjects/Builtin.java  |   5 +-
 .../instructions/CPInstructionParser.java       |   5 +-
 .../sysml/runtime/instructions/Instruction.java |   9 +-
 .../runtime/instructions/InstructionParser.java |   5 +-
 .../runtime/instructions/InstructionUtils.java  |  22 +---
 .../instructions/MRInstructionParser.java       |  25 ++--
 .../runtime/instructions/MRJobInstruction.java  |   3 +-
 .../instructions/SPInstructionParser.java       |   9 +-
 .../cp/AggregateBinaryCPInstruction.java        |   3 +-
 .../cp/AggregateTernaryCPInstruction.java       |   3 +-
 .../cp/AggregateUnaryCPInstruction.java         |   3 +-
 .../cp/ArithmeticBinaryCPInstruction.java       |   5 +-
 .../cp/BuiltinBinaryCPInstruction.java          |   3 +-
 .../cp/BuiltinUnaryCPInstruction.java           |   3 +-
 .../runtime/instructions/cp/CPInstruction.java  |   5 +-
 .../cp/CentralMomentCPInstruction.java          |   3 +-
 .../cp/CovarianceCPInstruction.java             |   3 +-
 .../cp/DataPartitionCPInstruction.java          |   3 +-
 .../instructions/cp/FileCPInstruction.java      |   7 +-
 .../cp/FrameAppendCPInstruction.java            |   3 +-
 .../cp/FrameIndexingCPInstruction.java          |   3 +-
 .../cp/FunctionCallCPInstruction.java           |   9 +-
 .../instructions/cp/MMChainCPInstruction.java   |   3 +-
 .../instructions/cp/MMTSJCPInstruction.java     |   3 +-
 .../cp/MatrixAppendCPInstruction.java           |   3 +-
 .../cp/MatrixBuiltinCPInstruction.java          |   3 +-
 .../cp/MatrixIndexingCPInstruction.java         |   3 +-
 .../cp/MatrixMatrixArithmeticCPInstruction.java |   3 +-
 .../cp/MatrixMatrixBuiltinCPInstruction.java    |   3 +-
 .../cp/MatrixMatrixRelationalCPInstruction.java |   3 +-
 .../cp/MatrixReshapeCPInstruction.java          |   3 +-
 .../cp/MatrixScalarBuiltinCPInstruction.java    |   3 +-
 .../cp/MultiReturnBuiltinCPInstruction.java     |   5 +-
 .../instructions/cp/PMMJCPInstruction.java      |   3 +-
 .../cp/ParameterizedBuiltinCPInstruction.java   |   5 +-
 .../cp/QuantilePickCPInstruction.java           |   3 +-
 .../cp/QuantileSortCPInstruction.java           |   3 +-
 .../cp/QuaternaryCPInstruction.java             |   3 +-
 .../instructions/cp/ReorgCPInstruction.java     |   3 +-
 .../cp/ScalarAppendCPInstruction.java           |   3 +-
 .../cp/ScalarMatrixArithmeticCPInstruction.java |   3 +-
 .../cp/ScalarMatrixRelationalCPInstruction.java |   3 +-
 .../runtime/instructions/cp/StringObject.java   |   2 -
 .../instructions/cp/TernaryCPInstruction.java   |   3 +-
 .../cp/UaggOuterChainCPInstruction.java         |   3 +-
 .../instructions/cp/VariableCPInstruction.java  |  25 ++--
 .../cpfile/MatrixIndexingCPFileInstruction.java |   3 +-
 .../ParameterizedBuiltinCPFileInstruction.java  |   6 +-
 .../mr/AggregateBinaryInstruction.java          |   6 +-
 .../instructions/mr/AggregateInstruction.java   |   3 +-
 .../mr/AggregateUnaryInstruction.java           |   3 +-
 .../instructions/mr/AppendGInstruction.java     |   3 +-
 .../instructions/mr/AppendInstruction.java      |   5 +-
 .../instructions/mr/AppendMInstruction.java     |   3 +-
 .../instructions/mr/AppendRInstruction.java     |   3 +-
 .../mr/BinUaggChainInstruction.java             |   3 +-
 .../instructions/mr/BinaryInstruction.java      |   3 +-
 .../instructions/mr/BinaryMInstruction.java     |   3 +-
 .../instructions/mr/CM_N_COVInstruction.java    |   3 +-
 .../instructions/mr/CSVWriteInstruction.java    |   3 +-
 .../mr/CombineBinaryInstruction.java            |   3 +-
 .../mr/CombineTernaryInstruction.java           |   3 +-
 .../mr/CombineUnaryInstruction.java             |   3 +-
 .../mr/CumulativeAggregateInstruction.java      |   3 +-
 .../mr/CumulativeOffsetInstruction.java         |   3 +-
 .../mr/CumulativeSplitInstruction.java          |   3 +-
 .../mr/GroupedAggregateInstruction.java         |   3 +-
 .../mr/GroupedAggregateMInstruction.java        |   3 +-
 .../instructions/mr/MMTSJMRInstruction.java     |   5 +-
 .../runtime/instructions/mr/MRInstruction.java  |   6 +-
 .../mr/MapMultChainInstruction.java             |   9 +-
 .../mr/MatrixReshapeMRInstruction.java          |   3 +-
 .../instructions/mr/PMMJMRInstruction.java      |   3 +-
 .../mr/ParameterizedBuiltinMRInstruction.java   |   3 +-
 .../instructions/mr/PickByCountInstruction.java |   3 +-
 .../instructions/mr/QuaternaryInstruction.java  |   3 +-
 .../instructions/mr/RandInstruction.java        |   3 +-
 .../mr/RangeBasedReIndexInstruction.java        |   3 +-
 .../instructions/mr/ReblockInstruction.java     |   3 +-
 .../mr/RemoveEmptyMRInstruction.java            |   3 +-
 .../instructions/mr/ReorgInstruction.java       |   3 +-
 .../instructions/mr/ReplicateInstruction.java   |   3 +-
 .../instructions/mr/ScalarInstruction.java      |   3 +-
 .../runtime/instructions/mr/SeqInstruction.java |   3 +-
 .../instructions/mr/TernaryInstruction.java     |   5 +-
 .../mr/UaggOuterChainInstruction.java           |   3 +-
 .../instructions/mr/UnaryInstruction.java       |   3 +-
 .../instructions/mr/ZeroOutInstruction.java     |   3 +-
 .../spark/AggregateTernarySPInstruction.java    |   3 +-
 .../spark/AggregateUnarySPInstruction.java      |   3 +-
 .../spark/AppendGAlignedSPInstruction.java      |   3 +-
 .../spark/AppendGSPInstruction.java             |   3 +-
 .../spark/AppendMSPInstruction.java             |   3 +-
 .../spark/AppendRSPInstruction.java             |   3 +-
 .../spark/ArithmeticBinarySPInstruction.java    |   4 +-
 .../spark/BinUaggChainSPInstruction.java        |   3 +-
 .../instructions/spark/BinarySPInstruction.java |  10 +-
 .../spark/BuiltinBinarySPInstruction.java       |   4 +-
 .../spark/BuiltinUnarySPInstruction.java        |   4 +-
 .../spark/CSVReblockSPInstruction.java          |   3 +-
 .../spark/CentralMomentSPInstruction.java       |   3 +-
 .../spark/CheckpointSPInstruction.java          |   3 +-
 .../spark/CovarianceSPInstruction.java          |   3 +-
 .../instructions/spark/CpmmSPInstruction.java   |   3 +-
 .../spark/CumulativeAggregateSPInstruction.java |   3 +-
 .../spark/CumulativeOffsetSPInstruction.java    |   3 +-
 .../spark/MapmmChainSPInstruction.java          |   7 +-
 .../instructions/spark/MapmmSPInstruction.java  |   3 +-
 .../MatrixBVectorArithmeticSPInstruction.java   |   3 +-
 .../MatrixBVectorBuiltinSPInstruction.java      |   3 +-
 .../MatrixBVectorRelationalSPInstruction.java   |   3 +-
 .../spark/MatrixBuiltinSPInstruction.java       |   3 +-
 .../spark/MatrixIndexingSPInstruction.java      |   3 +-
 .../MatrixMatrixArithmeticSPInstruction.java    |   3 +-
 .../spark/MatrixMatrixBuiltinSPInstruction.java |   3 +-
 .../MatrixMatrixRelationalSPInstruction.java    |   3 +-
 .../spark/MatrixReshapeSPInstruction.java       |   3 +-
 .../MatrixScalarArithmeticSPInstruction.java    |   3 +-
 .../spark/MatrixScalarBuiltinSPInstruction.java |   3 +-
 .../MatrixScalarRelationalSPInstruction.java    |   3 +-
 .../instructions/spark/PMapmmSPInstruction.java |   3 +-
 .../ParameterizedBuiltinSPInstruction.java      |   5 +-
 .../instructions/spark/PmmSPInstruction.java    |   5 +-
 .../spark/QuantilePickSPInstruction.java        |   3 +-
 .../spark/QuantileSortSPInstruction.java        |   3 +-
 .../spark/QuaternarySPInstruction.java          |  11 +-
 .../spark/ReblockSPInstruction.java             |   3 +-
 .../instructions/spark/ReorgSPInstruction.java  |   3 +-
 .../instructions/spark/RmmSPInstruction.java    |   3 +-
 .../instructions/spark/SPInstruction.java       |   5 +-
 .../spark/TernarySPInstruction.java             |   3 +-
 .../instructions/spark/TsmmSPInstruction.java   |   3 +-
 .../spark/UaggOuterChainSPInstruction.java      |   3 +-
 .../instructions/spark/WriteSPInstruction.java  |   3 +-
 .../instructions/spark/ZipmmSPInstruction.java  |   3 +-
 .../spark/data/PartitionedBroadcastMatrix.java  |   3 +-
 .../spark/data/PartitionedMatrixBlock.java      |   4 +-
 .../instructions/spark/utils/RDDSortUtils.java  |  63 +---------
 .../instructions/spark/utils/SparkUtils.java    |   3 -
 .../sysml/runtime/io/FrameReaderFactory.java    |   1 -
 .../apache/sysml/runtime/io/FrameWriter.java    |   6 +-
 .../runtime/io/FrameWriterBinaryBlock.java      |   7 +-
 .../sysml/runtime/io/FrameWriterTextCSV.java    |   6 +-
 .../sysml/runtime/io/FrameWriterTextCell.java   |   4 +-
 .../apache/sysml/runtime/io/MatrixWriter.java   |   5 +-
 .../sysml/runtime/io/WriterBinaryBlock.java     |  12 +-
 .../runtime/io/WriterBinaryBlockParallel.java   |   4 +-
 .../sysml/runtime/io/WriterBinaryCell.java      |   3 +-
 .../sysml/runtime/io/WriterMatrixMarket.java    |   3 +-
 .../apache/sysml/runtime/io/WriterTextCSV.java  |   3 +-
 .../apache/sysml/runtime/io/WriterTextCell.java |   3 +-
 .../org/apache/sysml/runtime/matrix/GMR.java    |   7 +-
 .../runtime/matrix/MatrixCharacteristics.java   |   8 +-
 .../sysml/runtime/matrix/data/CM_N_COVCell.java |  45 ++++---
 .../sysml/runtime/matrix/data/LibMatrixAgg.java |   4 +-
 .../runtime/matrix/data/LibMatrixMult.java      |  24 +---
 .../runtime/matrix/data/LibMatrixOuterAgg.java  |  13 +-
 .../runtime/matrix/data/LibMatrixReorg.java     |  24 ++--
 .../sysml/runtime/matrix/data/MatrixBlock.java  | 121 +++++++------------
 .../sysml/runtime/matrix/data/MatrixCell.java   |  57 +++++----
 .../runtime/matrix/data/MatrixPackedCell.java   |   9 +-
 .../sysml/runtime/matrix/data/MatrixValue.java  |  45 ++++---
 .../matrix/data/OperationsOnMatrixValues.java   |  45 +++----
 .../sysml/runtime/matrix/data/WeightedCell.java |  23 ++--
 .../sysml/runtime/matrix/data/WeightedPair.java |   9 +-
 .../matrix/mapred/CSVAssignRowIDMapper.java     |   5 +-
 .../matrix/mapred/CSVReblockReducer.java        |   3 -
 .../mapred/MMCJMRCombinerReducerBase.java       |   3 -
 .../runtime/matrix/mapred/MMCJMRMapper.java     |   3 -
 .../runtime/matrix/mapred/MMCJMRReducer.java    |   7 +-
 .../runtime/matrix/mapred/MMRJMRMapper.java     |   3 -
 .../runtime/matrix/mapred/MMRJMRReducer.java    |   3 -
 .../mapred/MRBaseForCommonInstructions.java     |   7 +-
 .../matrix/mapred/MRJobConfiguration.java       |  37 +++---
 .../sysml/runtime/matrix/mapred/MapperBase.java |   3 -
 .../matrix/mapred/PartialAggregator.java        |   7 +-
 .../sysml/runtime/matrix/mapred/ReduceBase.java |  53 +-------
 .../ExternalFunctionInvocationInstruction.java  |   3 +-
 .../org/apache/sysml/utils/AppException.java    |  40 ------
 .../apache/sysml/yarn/DMLAppMasterUtils.java    |   4 +-
 .../sysml/yarn/ropt/ResourceOptimizer.java      |  27 ++---
 .../yarn/ropt/ResourceOptimizerCPMigration.java |   2 +-
 .../functions/frame/FrameReadWriteTest.java     |   8 +-
 226 files changed, 669 insertions(+), 1434 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/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 df6d0e2..3e7b48a 100644
--- a/src/main/java/org/apache/sysml/api/DMLScript.java
+++ b/src/main/java/org/apache/sysml/api/DMLScript.java
@@ -33,8 +33,6 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Scanner;
 
-import javax.xml.parsers.ParserConfigurationException;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
@@ -45,7 +43,6 @@ import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.util.GenericOptionsParser;
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
-import org.xml.sax.SAXException;
 import org.apache.sysml.conf.CompilerConfig;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.conf.DMLConfig;
@@ -65,7 +62,6 @@ import org.apache.sysml.parser.LanguageException;
 import org.apache.sysml.parser.ParseException;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.DMLScriptException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.Program;
 import org.apache.sysml.runtime.controlprogram.caching.CacheStatistics;
 import org.apache.sysml.runtime.controlprogram.caching.CacheableData;
@@ -182,10 +178,8 @@ public class DMLScript
         * Default DML script invocation (e.g., via 'hadoop jar SystemML.jar -f 
Test.dml')
         * 
         * @param args
-        * @throws ParseException
         * @throws IOException
-        * @throws SAXException
-        * @throws ParserConfigurationException
+        * @throws DMLException
         */
        public static void main(String[] args) 
                throws IOException, DMLException 
@@ -560,12 +554,11 @@ public class DMLScript
         * @throws DMLRuntimeException 
         * @throws HopsException 
         * @throws LanguageException 
-        * @throws DMLUnsupportedOperationException 
         * @throws LopsException 
         * @throws DMLException 
         */
        private static void execute(String dmlScriptStr, String fnameOptConfig, 
HashMap<String,String> argVals, String[] allArgs, boolean parsePyDML)
-               throws ParseException, IOException, DMLRuntimeException, 
LanguageException, HopsException, LopsException, 
DMLUnsupportedOperationException 
+               throws ParseException, IOException, DMLRuntimeException, 
LanguageException, HopsException, LopsException 
        {       
                //print basic time and environment info
                printStartExecInfo( dmlScriptStr );
@@ -707,12 +700,11 @@ public class DMLScript
         * @throws DMLDebuggerException
         * @throws HopsException 
         * @throws LanguageException 
-        * @throws DMLUnsupportedOperationException 
         * @throws LopsException 
         * @throws DMLException 
         */
        private static void launchDebugger(String dmlScriptStr, String 
fnameOptConfig, HashMap<String,String> argVals, boolean parsePyDML)
-               throws ParseException, IOException, DMLRuntimeException, 
DMLDebuggerException, LanguageException, HopsException, LopsException, 
DMLUnsupportedOperationException 
+               throws ParseException, IOException, DMLRuntimeException, 
DMLDebuggerException, LanguageException, HopsException, LopsException 
        {               
                DMLDebuggerProgramInfo dbprog = new DMLDebuggerProgramInfo();
                

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java 
b/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
index 3e7d983..1a822bf 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
@@ -32,7 +32,6 @@ import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.Program;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
@@ -80,10 +79,9 @@ public class CostEstimationWrapper
         * @param rtprog
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        public static double getTimeEstimate(Program rtprog, ExecutionContext 
ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                Timing time = new Timing(true);
                
@@ -101,10 +99,9 @@ public class CostEstimationWrapper
         * @param ec
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        public static double getTimeEstimate(ProgramBlock pb, ExecutionContext 
ec, boolean recursive) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                Timing time = new Timing(true);
                
@@ -122,13 +119,12 @@ public class CostEstimationWrapper
         * @param ec
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         * @throws HopsException
         * @throws LopsException
         * @throws IOException
         */
        public static double getTimeEstimate( ArrayList<Hop> hops, 
ExecutionContext ec ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException, 
HopsException, LopsException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                Timing time = new Timing(true);
                

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java 
b/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java
index 0e2a353..6b9c21f 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java
@@ -36,7 +36,6 @@ import org.apache.sysml.lops.Lop;
 import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.parser.DMLProgram;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.ExternalFunctionProgramBlock;
 import org.apache.sysml.runtime.controlprogram.ForProgramBlock;
 import org.apache.sysml.runtime.controlprogram.FunctionProgramBlock;
@@ -85,10 +84,9 @@ public abstract class CostEstimator
         * @param rtprog
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        public double getTimeEstimate(Program rtprog, LocalVariableMap vars, 
HashMap<String,VarStats> stats) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                double costs = 0;
 
@@ -109,10 +107,9 @@ public abstract class CostEstimator
         * @param stats
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        public double getTimeEstimate(ProgramBlock pb, LocalVariableMap vars, 
HashMap<String,VarStats> stats, boolean recursive) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                //obtain stats from symboltable (e.g., during recompile)
                maintainVariableStatistics(vars, stats);
@@ -127,14 +124,13 @@ public abstract class CostEstimator
         * @param hops
         * @param vars
         * @return
-        * @throws DMLUnsupportedOperationException 
         * @throws DMLRuntimeException 
         * @throws IOException 
         * @throws LopsException 
         * @throws HopsException 
         */
        public double getTimeEstimate( ArrayList<Hop> hops, LocalVariableMap 
vars, HashMap<String,VarStats> stats ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException, 
HopsException, LopsException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                double costs = 0;
                
@@ -158,10 +154,9 @@ public abstract class CostEstimator
         * @param stats
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        private double rGetTimeEstimate(ProgramBlock pb, 
HashMap<String,VarStats> stats, HashSet<String> memoFunc, boolean recursive) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                double ret = 0;
                
@@ -392,10 +387,9 @@ public abstract class CostEstimator
         * @param inst
         * @param stats
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        private void maintainMRJobInstVariableStatistics( Instruction inst, 
HashMap<String, VarStats> stats ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                MRJobInstruction jobinst = (MRJobInstruction)inst;
                
@@ -769,10 +763,9 @@ public abstract class CostEstimator
         * @param args
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        protected abstract double getCPInstTimeEstimate( Instruction inst, 
VarStats[] vs, String[] args  ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException;
+               throws DMLRuntimeException;
        
        /**
         * 
@@ -781,8 +774,7 @@ public abstract class CostEstimator
         * @param args
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        protected abstract double getMRJobInstTimeEstimate( Instruction inst, 
VarStats[] vs, String[] args  ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException;
+               throws DMLRuntimeException;
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java 
b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java
index 5c6e6d2..8c5ef9c 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java
@@ -20,7 +20,6 @@
 package org.apache.sysml.hops.cost;
 
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.instructions.Instruction;
 
 /**
@@ -32,14 +31,14 @@ public class CostEstimatorNumMRJobs extends CostEstimator
        
        @Override
        protected double getCPInstTimeEstimate( Instruction inst, VarStats[] 
vs, String[] args  ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                return 0;
        }
        
        @Override
        protected double getMRJobInstTimeEstimate( Instruction inst, VarStats[] 
vs, String[] args  ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                return 1;
        }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java 
b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java
index a4128ac..1200c1b 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java
@@ -30,7 +30,6 @@ import org.apache.sysml.lops.LopProperties.ExecType;
 import org.apache.sysml.lops.MMTSJ.MMTSJType;
 import org.apache.sysml.lops.compile.JobType;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.caching.CacheableData;
 import org.apache.sysml.runtime.controlprogram.caching.LazyWriteBuffer;
 import 
org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer;
@@ -101,7 +100,7 @@ public class CostEstimatorStaticRuntime extends 
CostEstimator
        @Override
        @SuppressWarnings("unused")
        protected double getCPInstTimeEstimate( Instruction inst, VarStats[] 
vs, String[] args ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                CPInstruction cpinst = (CPInstruction)inst;
                
@@ -157,7 +156,7 @@ public class CostEstimatorStaticRuntime extends 
CostEstimator
        
        @Override
        protected double getMRJobInstTimeEstimate( Instruction inst, VarStats[] 
vs, String[] args ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                MRJobInstruction jinst = (MRJobInstruction) inst;
                
@@ -320,11 +319,10 @@ public class CostEstimatorStaticRuntime extends 
CostEstimator
         * @param inst
         * @param stats
         * @return
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         */
        private Object[] extractMRInstStatistics( String inst, VarStats[] stats 
) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException
+               throws DMLRuntimeException
        {
                Object[] ret = new Object[2]; //stats, attrs
                VarStats[] vs = new VarStats[3];
@@ -499,11 +497,10 @@ public class CostEstimatorStaticRuntime extends 
CostEstimator
         * @param aggInst
         * @param otherInst
         * @return
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         */
        private byte[] getMapOutputIndexes( byte[] inIx, byte[] retIx, String 
rdInst, String mapInst, String shfInst, String aggInst, String otherInst ) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException
+               throws DMLRuntimeException
        {
                //note: this is a simplified version of 
MRJobConfiguration.setUpOutputIndexesForMapper
                
@@ -647,10 +644,9 @@ public class CostEstimatorStaticRuntime extends 
CostEstimator
         * @param inst
         * @return
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        private int getDistcacheIndex(String inst) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException
+               throws DMLRuntimeException
        {
                ArrayList<Byte> indexes = new ArrayList<Byte>();
                
@@ -806,10 +802,9 @@ public class CostEstimatorStaticRuntime extends 
CostEstimator
         * @param args
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        private double getInstTimeEstimate(String opcode, VarStats[] vs, 
String[] args, ExecType et) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                boolean inMR = (et == ExecType.MR);
                return getInstTimeEstimate(opcode, inMR,  
@@ -837,9 +832,8 @@ public class CostEstimatorStaticRuntime extends 
CostEstimator
         * @param d3s
         * @return
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
-       private double getInstTimeEstimate( String opcode, boolean inMR, long 
d1m, long d1n, double d1s, long d2m, long d2n, double d2s, long d3m, long d3n, 
double d3s, String[] args ) throws DMLRuntimeException, 
DMLUnsupportedOperationException
+       private double getInstTimeEstimate( String opcode, boolean inMR, long 
d1m, long d1n, double d1s, long d2m, long d2n, double d2s, long d3m, long d3n, 
double d3s, String[] args ) throws DMLRuntimeException
        {
                double nflops = getNFLOP(opcode, inMR, d1m, d1n, d1s, d2m, d2n, 
d2s, d3m, d3n, d3s, args);
                double time = nflops / DEFAULT_FLOPS;
@@ -865,10 +859,9 @@ public class CostEstimatorStaticRuntime extends 
CostEstimator
         * @param args
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        private double getNFLOP( String optype, boolean inMR, long d1m, long 
d1n, double d1s, long d2m, long d2n, double d2s, long d3m, long d3n, double 
d3s, String[] args ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                //operation costs in FLOP on matrix block level (for CP and MR 
instructions)
                //(excludes IO and parallelism; assumes known dims for all 
inputs, outputs )

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java 
b/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java
index f3a9188..452f710 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java
@@ -45,7 +45,6 @@ import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.LopProperties.ExecType;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.Program;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
@@ -106,7 +105,7 @@ public class GDFEnumOptimizer extends GlobalOptimizer
 
        @Override
        public GDFGraph optimize(GDFGraph gdfgraph, Summary summary) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException, 
HopsException, LopsException 
+               throws DMLRuntimeException, HopsException, LopsException 
        {
                Timing time = new Timing(true);
                
@@ -167,10 +166,9 @@ public class GDFEnumOptimizer extends GlobalOptimizer
         * @param maxCosts
         * @return
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        public static PlanSet enumOpt( GDFNode node, MemoStructure memo, double 
maxCosts )
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                //memoization of already enumerated subgraphs
                if( memo.constainsEntry(node) )
@@ -209,12 +207,11 @@ public class GDFEnumOptimizer extends GlobalOptimizer
         * 
         * @param node
         * @param memo 
-        * @return
-        * @throws DMLUnsupportedOperationException 
+        * @return 
         * @throws DMLRuntimeException 
         */
        private static PlanSet enumNodePlans( GDFNode node, MemoStructure memo, 
double maxCosts ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                ArrayList<Plan> plans = new ArrayList<Plan>();
                ExecType CLUSTER = OptimizerUtils.isSparkExecutionMode() ? 
ExecType.SPARK : ExecType.MR;
@@ -394,10 +391,9 @@ public class GDFEnumOptimizer extends GlobalOptimizer
         * @param plans
         * @param maxCosts 
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        private static void pruneSuboptimalPlans( PlanSet plans, double 
maxCosts ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                //costing of all plans incl containment check
                for( Plan p : plans.getPlans() ) {
@@ -446,10 +442,9 @@ public class GDFEnumOptimizer extends GlobalOptimizer
         * @param p
         * @return
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        private static double costRuntimePlan(Plan p) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                Program prog = p.getNode().getProgram();
                if( prog == null )

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizer.java 
b/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizer.java
index d08982b..65754d9 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizer.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizer.java
@@ -23,7 +23,6 @@ import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.globalopt.gdfgraph.GDFGraph;
 import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 
 /**
  * Super class for all optimizers (e.g., transformation-based, and 
enumeration-based)
@@ -45,5 +44,5 @@ public abstract class GlobalOptimizer
         * @throws  
         */
        public abstract GDFGraph optimize( GDFGraph gdfgraph, Summary summary )
-               throws DMLRuntimeException, DMLUnsupportedOperationException, 
HopsException, LopsException;
+               throws DMLRuntimeException, HopsException, LopsException;
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizerWrapper.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizerWrapper.java 
b/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizerWrapper.java
index 3d67e6b..720f164 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizerWrapper.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/GlobalOptimizerWrapper.java
@@ -30,7 +30,6 @@ import org.apache.sysml.hops.globalopt.gdfgraph.GraphBuilder;
 import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.parser.DMLProgram;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.Program;
 import org.apache.sysml.runtime.controlprogram.parfor.stat.Timing;
 import org.apache.sysml.utils.Explain;
@@ -72,11 +71,10 @@ public class GlobalOptimizerWrapper
         * @return
         * @throws DMLRuntimeException 
         * @throws HopsException
-        * @throws LopsException 
-        * @throws DMLUnsupportedOperationException 
+        * @throws LopsException  
         */
        public static Program optimizeProgram(DMLProgram prog, Program rtprog) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException, 
HopsException, LopsException
+               throws DMLRuntimeException, HopsException, LopsException
        {
                LOG.debug("Starting global data flow optimization.");
                Timing time = new Timing(true);

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java 
b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
index 3edf7f7..5ba4086 100644
--- a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
+++ b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
@@ -70,7 +70,6 @@ import org.apache.sysml.parser.Statement;
 import org.apache.sysml.parser.StatementBlock;
 import org.apache.sysml.parser.WhileStatementBlock;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.ForProgramBlock;
 import org.apache.sysml.runtime.controlprogram.FunctionProgramBlock;
 import org.apache.sysml.runtime.controlprogram.IfProgramBlock;
@@ -150,11 +149,10 @@ public class Recompiler
         * @throws DMLRuntimeException
         * @throws HopsException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        public static ArrayList<Instruction> recompileHopsDag( StatementBlock 
sb, ArrayList<Hop> hops, LocalVariableMap vars, RecompileStatus status, boolean 
inplace, long tid ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                ArrayList<Instruction> newInst = null;
 
@@ -249,11 +247,10 @@ public class Recompiler
         * @throws DMLRuntimeException
         * @throws HopsException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        public static ArrayList<Instruction> recompileHopsDag( Hop hops, 
LocalVariableMap vars, RecompileStatus status, boolean inplace, long tid ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                ArrayList<Instruction> newInst = null;
 
@@ -330,11 +327,10 @@ public class Recompiler
         * @throws DMLRuntimeException
         * @throws HopsException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        public static ArrayList<Instruction> recompileHopsDag2Forced( 
StatementBlock sb, ArrayList<Hop> hops, long tid, ExecType et ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                ArrayList<Instruction> newInst = null;
                
@@ -387,11 +383,10 @@ public class Recompiler
         * @throws DMLRuntimeException
         * @throws HopsException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        public static ArrayList<Instruction> recompileHopsDag2Forced( Hop hops, 
long tid, ExecType et ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                ArrayList<Instruction> newInst = null;
 
@@ -434,11 +429,10 @@ public class Recompiler
         * @throws HopsException
         * @throws LopsException
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        public static ArrayList<Instruction> recompileHopsDagInstructions( 
StatementBlock sb, ArrayList<Hop> hops ) 
-               throws HopsException, LopsException, DMLRuntimeException, 
DMLUnsupportedOperationException, IOException 
+               throws HopsException, LopsException, DMLRuntimeException, 
IOException 
        {
                ArrayList<Instruction> newInst = null;
 
@@ -485,11 +479,10 @@ public class Recompiler
         * @throws DMLRuntimeException
         * @throws HopsException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        public static ArrayList<Instruction> recompileHopsDagInstructions( Hop 
hops ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                ArrayList<Instruction> newInst = null;
 
@@ -582,13 +575,12 @@ public class Recompiler
         * 
         * @param pb
         * @throws IOException 
-        * @throws DMLUnsupportedOperationException 
         * @throws DMLRuntimeException 
         * @throws LopsException 
         * @throws HopsException 
         */
        public static void recompileProgramBlockInstructions(ProgramBlock pb) 
-               throws HopsException, LopsException, DMLRuntimeException, 
DMLUnsupportedOperationException, IOException
+               throws HopsException, LopsException, DMLRuntimeException, 
IOException
        {
                if( pb instanceof WhileProgramBlock )
                {
@@ -802,13 +794,12 @@ public class Recompiler
         * @param vars
         * @param tid
         * @throws IOException 
-        * @throws DMLUnsupportedOperationException 
         * @throws LopsException 
         * @throws DMLRuntimeException 
         * @throws HopsException 
         */
        private static void rRecompileProgramBlock( ProgramBlock pb, 
LocalVariableMap vars, RecompileStatus status, long tid, boolean resetRecompile 
) 
-               throws HopsException, DMLRuntimeException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws HopsException, DMLRuntimeException, LopsException, 
IOException
        {
                if (pb instanceof WhileProgramBlock)
                {
@@ -1185,11 +1176,10 @@ public class Recompiler
         * @throws DMLRuntimeException
         * @throws HopsException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        private static void recompileIfPredicate( IfProgramBlock ipb, 
IfStatementBlock isb, LocalVariableMap vars, RecompileStatus status, long tid, 
boolean resetRecompile ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                if( isb != null )
                {
@@ -1220,11 +1210,10 @@ public class Recompiler
         * @throws DMLRuntimeException
         * @throws HopsException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        private static void recompileWhilePredicate( WhileProgramBlock wpb, 
WhileStatementBlock wsb, LocalVariableMap vars, RecompileStatus status, long 
tid, boolean resetRecompile ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                if( wsb != null )
                {
@@ -1255,11 +1244,10 @@ public class Recompiler
         * @throws DMLRuntimeException
         * @throws HopsException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        private static void recompileForPredicates( ForProgramBlock fpb, 
ForStatementBlock fsb, LocalVariableMap vars, RecompileStatus status, long tid, 
boolean resetRecompile ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws DMLRuntimeException, HopsException, LopsException, 
IOException
        {
                if( fsb != null )
                {
@@ -1322,11 +1310,10 @@ public class Recompiler
         * @throws HopsException
         * @throws DMLRuntimeException
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        private static void rRecompileProgramBlock2Forced( ProgramBlock pb, 
long tid, HashSet<String> fnStack, ExecType et ) 
-               throws HopsException, DMLRuntimeException, LopsException, 
DMLUnsupportedOperationException, IOException
+               throws HopsException, DMLRuntimeException, LopsException, 
IOException
        {
                if (pb instanceof WhileProgramBlock)
                {
@@ -1965,11 +1952,10 @@ public class Recompiler
         * @param inputs
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         * @throws IOException
         */
        public static boolean checkCPTransform(MRJobInstruction inst, 
MatrixObject[] inputs) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException, 
IOException 
+               throws DMLRuntimeException, IOException 
        {
                boolean ret = true;
                

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java 
b/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
index 945b21f..f4b57cc 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
@@ -38,7 +38,6 @@ import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.compile.Dag;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.Program;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
@@ -191,13 +190,12 @@ public class RewriteConstantFolding extends HopRewriteRule
         * 
         * @return
         * @throws IOException 
-        * @throws DMLUnsupportedOperationException 
         * @throws LopsException 
         * @throws DMLRuntimeException 
         * @throws HopsException 
         */
        private LiteralOp evalScalarOperation( Hop bop ) 
-               throws LopsException, DMLRuntimeException, 
DMLUnsupportedOperationException, IOException, HopsException
+               throws LopsException, DMLRuntimeException, IOException, 
HopsException
        {
                //Timing time = new Timing( true );
                

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/lops/compile/Dag.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/compile/Dag.java 
b/src/main/java/org/apache/sysml/lops/compile/Dag.java
index 29c1250..dba852b 100644
--- a/src/main/java/org/apache/sysml/lops/compile/Dag.java
+++ b/src/main/java/org/apache/sysml/lops/compile/Dag.java
@@ -64,7 +64,6 @@ import 
org.apache.sysml.parser.ParameterizedBuiltinFunctionExpression;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.parser.StatementBlock;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.parfor.ProgramConverter;
 import org.apache.sysml.runtime.controlprogram.parfor.util.IDSequence;
 import org.apache.sysml.runtime.instructions.CPInstructionParser;
@@ -228,10 +227,9 @@ public class Dag<N extends Lop>
         * @throws LopsException
         * @throws IOException
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        public ArrayList<Instruction> getJobs(DMLConfig config)
-                       throws LopsException, IOException, DMLRuntimeException, 
DMLUnsupportedOperationException 
+                       throws LopsException, IOException, DMLRuntimeException 
        {
                return getJobs(null, config);
        }
@@ -241,13 +239,11 @@ public class Dag<N extends Lop>
         * 
         * @param config
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         */
 
        public ArrayList<Instruction> getJobs(StatementBlock sb, DMLConfig 
config)
-                       throws LopsException, IOException, DMLRuntimeException,
-                       DMLUnsupportedOperationException {
+                       throws LopsException, IOException, DMLRuntimeException {
                
                if (config != null) 
                {
@@ -276,8 +272,7 @@ public class Dag<N extends Lop>
        }
 
        private static void deleteUpdatedTransientReadVariables(StatementBlock 
sb, ArrayList<Lop> nodeV,
-                       ArrayList<Instruction> inst) throws DMLRuntimeException,
-                       DMLUnsupportedOperationException {
+                       ArrayList<Instruction> inst) throws DMLRuntimeException 
{
 
                if ( sb == null ) 
                        return;
@@ -350,9 +345,8 @@ public class Dag<N extends Lop>
 
        }
          
-       private static void generateRemoveInstructions(StatementBlock sb,
-                       ArrayList<Instruction> deleteInst)
-                       throws DMLUnsupportedOperationException, 
DMLRuntimeException {
+       private static void generateRemoveInstructions(StatementBlock sb, 
ArrayList<Instruction> deleteInst)
+               throws DMLRuntimeException {
                
                if ( sb == null ) 
                        return;
@@ -675,8 +669,6 @@ public class Dag<N extends Lop>
                                                CPInstruction currInstr = 
CPInstructionParser.parseSingleInstruction(inst_string);
                                                currInstr.setLocation(n);       
                                        
                                                inst.add(currInstr);
-                                       } catch 
(DMLUnsupportedOperationException e) {
-                                               throw new 
LopsException(n.printErrorLocation() + "error generating instructions from 
input variables in Dag -- \n", e);
                                        } catch (DMLRuntimeException e) {
                                                throw new 
LopsException(n.printErrorLocation() + "error generating instructions from 
input variables in Dag -- \n", e);
                                        }
@@ -797,12 +789,10 @@ public class Dag<N extends Lop>
         * 
         * @param node_v
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         */
        private ArrayList<Instruction> doGreedyGrouping(StatementBlock sb, 
ArrayList<Lop> node_v)
-                       throws LopsException, IOException, DMLRuntimeException,
-                       DMLUnsupportedOperationException
+                       throws LopsException, IOException, DMLRuntimeException
        {
                if( LOG.isTraceEnabled() )
                        LOG.trace("Grouping DAG ============");
@@ -1284,9 +1274,8 @@ public class Dag<N extends Lop>
         * @param node
         * @param inst
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
-       private void processConsumersForInputs(Lop node, ArrayList<Instruction> 
inst, ArrayList<Instruction> delteInst) throws DMLRuntimeException, 
DMLUnsupportedOperationException {
+       private void processConsumersForInputs(Lop node, ArrayList<Instruction> 
inst, ArrayList<Instruction> delteInst) throws DMLRuntimeException {
                // reduce the consumer count for all input lops
                // if the count becomes zero, then then variable associated w/ 
input can be removed
                for(Lop in : node.getInputs() ) {
@@ -1299,7 +1288,7 @@ public class Dag<N extends Lop>
                }
        }
        
-       private static void processConsumers(Lop node, ArrayList<Instruction> 
inst, ArrayList<Instruction> deleteInst, Lop locationInfo) throws 
DMLRuntimeException, DMLUnsupportedOperationException {
+       private static void processConsumers(Lop node, ArrayList<Instruction> 
inst, ArrayList<Instruction> deleteInst, Lop locationInfo) throws 
DMLRuntimeException {
                // reduce the consumer count for all input lops
                // if the count becomes zero, then then variable associated w/ 
input can be removed
                if ( node.removeConsumer() == 0 ) {
@@ -1329,11 +1318,9 @@ public class Dag<N extends Lop>
         * @param deleteInst
         * @throws LopsException
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        private void generateControlProgramJobs(ArrayList<Lop> execNodes,
-                       ArrayList<Instruction> inst, ArrayList<Instruction> 
writeInst, ArrayList<Instruction> deleteInst) throws LopsException,
-                       DMLUnsupportedOperationException, DMLRuntimeException {
+                       ArrayList<Instruction> inst, ArrayList<Instruction> 
writeInst, ArrayList<Instruction> deleteInst) throws LopsException, 
DMLRuntimeException {
 
                // nodes to be deleted from execnodes
                ArrayList<Lop> markedNodes = new ArrayList<Lop>();
@@ -2104,15 +2091,12 @@ public class Dag<N extends Lop>
         * @param jobNodes
         * @throws LopsException
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        private void generateMRJobs(ArrayList<Lop> execNodes,
                        ArrayList<Instruction> inst,
                        ArrayList<Instruction> writeinst,
                        ArrayList<Instruction> deleteinst, 
ArrayList<ArrayList<Lop>> jobNodes)
-                       throws LopsException, DMLUnsupportedOperationException,
-                       DMLRuntimeException
-
+                       throws LopsException, DMLRuntimeException
        {
                printJobNodes(jobNodes);
                
@@ -2326,11 +2310,10 @@ public class Dag<N extends Lop>
        /**
         * Method to setup output filenames and outputInfos, and to generate 
related instructions
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         * @throws LopsException 
         */
        private NodeOutput setupNodeOutputs(Lop node, ExecType et, boolean 
cellModeOverride, boolean copyTWrite) 
-       throws DMLUnsupportedOperationException, DMLRuntimeException, 
LopsException {
+       throws DMLRuntimeException, LopsException {
                
                OutputParameters oparams = node.getOutputParameters();
                NodeOutput out = new NodeOutput();
@@ -2790,13 +2773,11 @@ public class Dag<N extends Lop>
         * @param deleteinst
         * @param jobType
         * @throws LopsException
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         */
        private void generateMapReduceInstructions(ArrayList<Lop> execNodes,
                        ArrayList<Instruction> inst, ArrayList<Instruction> 
writeinst, ArrayList<Instruction> deleteinst, ArrayList<Instruction> rmvarinst, 
-                       JobType jt) throws LopsException,
-                       DMLUnsupportedOperationException, DMLRuntimeException
+                       JobType jt) throws LopsException, DMLRuntimeException
        {
                ArrayList<Byte> resultIndices = new ArrayList<Byte>();
                ArrayList<String> inputs = new ArrayList<String>();

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java 
b/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java
index f6ae1a7..519d5ff 100644
--- a/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java
+++ b/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java
@@ -35,7 +35,6 @@ import org.apache.sysml.lops.compile.JobType;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
@@ -511,11 +510,10 @@ public class RunMRJobs
         * @param inputMatrices
         * @param outputMatrices
         * @return
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         */
        private static JobReturn executeInMemoryReblockOperations( 
MRJobInstruction inst, String shuffleInst, MatrixObject[] inputMatrices, 
MatrixObject[] outputMatrices ) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException
+               throws DMLRuntimeException
        {
                MatrixCharacteristics[] mc = new 
MatrixCharacteristics[outputMatrices.length];
                ReblockInstruction[] rblkSet = 
MRInstructionParser.parseReblockInstructions(shuffleInst);
@@ -538,7 +536,7 @@ public class RunMRJobs
        }
        
        private static JobReturn executeInMemoryDataGenOperations( 
MRJobInstruction inst, String randInst, MatrixObject[] outputMatrices ) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException
+               throws DMLRuntimeException
        {
                MatrixCharacteristics[] mc = new 
MatrixCharacteristics[outputMatrices.length];
                DataGenMRInstruction[] dgSet = 
MRInstructionParser.parseDataGenInstructions(randInst);

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/parser/DMLProgram.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/DMLProgram.java 
b/src/main/java/org/apache/sysml/parser/DMLProgram.java
index 9aac143..834b8b5 100644
--- a/src/main/java/org/apache/sysml/parser/DMLProgram.java
+++ b/src/main/java/org/apache/sysml/parser/DMLProgram.java
@@ -34,7 +34,6 @@ import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.compile.Dag;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.ExternalFunctionProgramBlock;
 import org.apache.sysml.runtime.controlprogram.ExternalFunctionProgramBlockCP;
 import org.apache.sysml.runtime.controlprogram.ForProgramBlock;
@@ -175,7 +174,7 @@ public class DMLProgram
        }
        
        
-       public Program getRuntimeProgram(DMLConfig config) throws IOException, 
LanguageException, DMLRuntimeException, LopsException, 
DMLUnsupportedOperationException {
+       public Program getRuntimeProgram(DMLConfig config) throws IOException, 
LanguageException, DMLRuntimeException, LopsException {
                
                // constructor resets the set of registered functions
                Program rtprog = new Program();
@@ -213,10 +212,9 @@ public class DMLProgram
         * @throws IOException
         * @throws LopsException
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        public ProgramBlock createRuntimeProgramBlock(Program prog, 
StatementBlock sb, DMLConfig config) 
-               throws IOException, LopsException, DMLRuntimeException, 
DMLUnsupportedOperationException 
+               throws IOException, LopsException, DMLRuntimeException 
        {
                Dag<Lop> dag = null; 
                Dag<Lop> pred_dag = null;
@@ -583,11 +581,10 @@ public class DMLProgram
         * @param pb
         * @return
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        @SuppressWarnings("unused")
        private ProgramBlock verifyAndCorrectProgramBlock(VariableSet in, 
VariableSet out, VariableSet kill, ProgramBlock pb) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException
+               throws DMLRuntimeException
        {       
                //RULE 1: if in IN and not in OUT, then there should be an 
rmvar or rmfilevar inst
                //(currently required for specific cases of external functions)
@@ -642,7 +639,7 @@ public class DMLProgram
        }
        
        private Instruction createCleanupInstruction(String varName) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException
+               throws DMLRuntimeException
        {
                //(example 
"CP+Lops.OPERAND_DELIMITOR+rmvar+Lops.OPERAND_DELIMITOR+Var7")
                StringBuilder sb = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/DMLUnsupportedOperationException.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/DMLUnsupportedOperationException.java 
b/src/main/java/org/apache/sysml/runtime/DMLUnsupportedOperationException.java
deleted file mode 100644
index 0e36d95..0000000
--- 
a/src/main/java/org/apache/sysml/runtime/DMLUnsupportedOperationException.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.sysml.runtime;
-
-import org.apache.sysml.api.DMLException;
-
-public class DMLUnsupportedOperationException extends DMLException 
-{
-       
-       private static final long serialVersionUID = 1L;
-
-       public DMLUnsupportedOperationException(String string) {
-               super(string);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/ForProgramBlock.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/ForProgramBlock.java 
b/src/main/java/org/apache/sysml/runtime/controlprogram/ForProgramBlock.java
index 146e173..db853f6 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/ForProgramBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/ForProgramBlock.java
@@ -27,7 +27,6 @@ import org.apache.sysml.parser.ForStatementBlock;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.DMLScriptException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 import org.apache.sysml.runtime.instructions.Instruction;
 import org.apache.sysml.runtime.instructions.cp.Data;
@@ -155,7 +154,7 @@ public class ForProgramBlock extends ProgramBlock
        
        @Override       
        public void execute(ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                // add the iterable predicate variable to the variable set
                String iterVarName = _iterablePredicateVars[0];

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/FunctionProgramBlock.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/FunctionProgramBlock.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/FunctionProgramBlock.java
index c28a6cc..cf45313 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/FunctionProgramBlock.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/FunctionProgramBlock.java
@@ -27,7 +27,6 @@ import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.parser.DataIdentifier;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.DMLScriptException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 import org.apache.sysml.runtime.instructions.cp.Data;
 import org.apache.sysml.utils.Statistics;
@@ -80,7 +79,7 @@ public class FunctionProgramBlock extends ProgramBlock
        
        @Override
        public void execute(ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {       
                //dynamically recompile entire function body (according to 
function inputs)
                try {

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/IfProgramBlock.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/IfProgramBlock.java 
b/src/main/java/org/apache/sysml/runtime/controlprogram/IfProgramBlock.java
index a0a06d4..27b285c 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/IfProgramBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/IfProgramBlock.java
@@ -27,7 +27,6 @@ import org.apache.sysml.parser.IfStatementBlock;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.DMLScriptException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 import org.apache.sysml.runtime.instructions.Instruction;
 import org.apache.sysml.runtime.instructions.Instruction.INSTRUCTION_TYPE;
@@ -144,7 +143,7 @@ public class IfProgramBlock extends ProgramBlock
        
        @Override
        public void execute(ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {       
                BooleanObject predResult = executePredicate(ec); 
        
@@ -202,10 +201,9 @@ public class IfProgramBlock extends ProgramBlock
         * @param ec
         * @return
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        private BooleanObject executePredicate(ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException 
+               throws DMLRuntimeException 
        {
                BooleanObject result = null;
                try

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java 
b/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java
index eb85306..fd53f4d 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java
@@ -48,7 +48,6 @@ import org.apache.sysml.parser.ParForStatementBlock;
 import org.apache.sysml.parser.StatementBlock;
 import org.apache.sysml.parser.VariableSet;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.caching.CacheException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
@@ -520,7 +519,7 @@ public class ParForProgramBlock extends ForProgramBlock
        
        @Override       
        public void execute(ExecutionContext ec)
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {       
                ParForStatementBlock sb = 
(ParForStatementBlock)getStatementBlock();
                
@@ -682,12 +681,11 @@ public class ParForProgramBlock extends ForProgramBlock
         * @param from
         * @param to
         * @param incr
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         * @throws InterruptedException 
         */
        private void executeLocalParFor( ExecutionContext ec, IntObject 
itervar, IntObject from, IntObject to, IntObject incr ) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException, 
InterruptedException
+               throws DMLRuntimeException, InterruptedException
        {
                /* Step 1) init parallel workers, task queue and threads
                 *         start threads (from now on waiting for tasks)
@@ -816,12 +814,11 @@ public class ParForProgramBlock extends ForProgramBlock
         * @param from
         * @param to
         * @param incr
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         * @throws IOException 
         */
        private void executeRemoteMRParFor( ExecutionContext ec, IntObject 
itervar, IntObject from, IntObject to, IntObject incr ) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException, 
IOException
+               throws DMLRuntimeException, IOException
        {
                /* Step 0) check and recompile MR inst
                 * Step 1) serialize child PB and inst
@@ -915,12 +912,11 @@ public class ParForProgramBlock extends ForProgramBlock
         * @param from
         * @param to
         * @param incr
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         * @throws IOException
         */
        private void executeRemoteMRParForDP( ExecutionContext ec, IntObject 
itervar, IntObject from, IntObject to, IntObject incr ) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException, 
IOException
+               throws DMLRuntimeException, IOException
        {
                /* Step 0) check and recompile MR inst
                 * Step 1) serialize child PB and inst
@@ -1000,10 +996,9 @@ public class ParForProgramBlock extends ForProgramBlock
         * @param to
         * @param incr
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        private void executeRemoteSparkParFor(ExecutionContext ec, IntObject 
itervar, IntObject from, IntObject to, IntObject incr) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                Timing time = ( _monitor ? new Timing(true) : null );
                
@@ -1065,7 +1060,7 @@ public class ParForProgramBlock extends ForProgramBlock
        }
        
        private void executeRemoteSparkParForDP( ExecutionContext ec, IntObject 
itervar, IntObject from, IntObject to, IntObject incr ) 
-               throws DMLUnsupportedOperationException, DMLRuntimeException, 
IOException
+               throws DMLRuntimeException, IOException
        {
                Timing time = ( _monitor ? new Timing(true) : null );
                
@@ -1133,10 +1128,9 @@ public class ParForProgramBlock extends ForProgramBlock
         * 
         * @param ec
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        private void handleDataPartitioning( ExecutionContext ec ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                if( _dataPartitioner != PDataPartitioner.NONE )
                {                       
@@ -1204,10 +1198,9 @@ public class ParForProgramBlock extends ForProgramBlock
         * 
         * @param ec
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        private void handleSparkRepartitioning( ExecutionContext ec ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                if( OptimizerUtils.isSparkExecutionMode() &&
                        _variablesRP != null && !_variablesRP.isEmpty() ) {
@@ -1222,10 +1215,9 @@ public class ParForProgramBlock extends ForProgramBlock
         * 
         * @param ec
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        private void handleSparkEagerCaching( ExecutionContext ec ) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                if( OptimizerUtils.isSparkExecutionMode() &&
                        _variablesECache != null && !_variablesECache.isEmpty() 
) {
@@ -1393,7 +1385,6 @@ public class ParForProgramBlock extends ForProgramBlock
         * @return
         * @throws InstantiationException
         * @throws IllegalAccessException
-        * @throws DMLUnsupportedOperationException
         * @throws DMLRuntimeException
         * @throws CloneNotSupportedException
         */

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/Program.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/Program.java 
b/src/main/java/org/apache/sysml/runtime/controlprogram/Program.java
index bfbe124..24ccaef 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/Program.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/Program.java
@@ -26,7 +26,6 @@ import java.util.Map.Entry;
 import org.apache.sysml.parser.DMLProgram;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.DMLScriptException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 
 
@@ -135,7 +134,7 @@ public class Program
        }
 
        public void execute(ExecutionContext ec)
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                ec.initDebugProgramCounters();
                

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java 
b/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java
index 02e3e0c..a8d324e 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java
@@ -32,7 +32,6 @@ import org.apache.sysml.parser.StatementBlock;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.DMLScriptException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 import org.apache.sysml.runtime.instructions.Instruction;
@@ -129,10 +128,9 @@ public class ProgramBlock
         * 
         * @param ec
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        public void execute(ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException 
+               throws DMLRuntimeException 
        {
                ArrayList<Instruction> tmp = _inst;
 
@@ -175,10 +173,9 @@ public class ProgramBlock
         * @param hops
         * @param ec
         * @throws DMLRuntimeException 
-        * @throws DMLUnsupportedOperationException 
         */
        public ScalarObject executePredicate(ArrayList<Instruction> inst, Hop 
hops, boolean requiresRecompile, ValueType retType, ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException
+               throws DMLRuntimeException
        {
                ArrayList<Instruction> tmp = inst;
                
@@ -211,10 +208,9 @@ public class ProgramBlock
         * @param inst
         * @param ec
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        protected void executeInstructions(ArrayList<Instruction> inst, 
ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException 
+               throws DMLRuntimeException 
        {
                for (int i = 0; i < inst.size(); i++) 
                {
@@ -232,10 +228,9 @@ public class ProgramBlock
         * @param inst
         * @param ec
         * @throws DMLRuntimeException
-        * @throws DMLUnsupportedOperationException
         */
        protected ScalarObject 
executePredicateInstructions(ArrayList<Instruction> inst, ValueType retType, 
ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException 
+               throws DMLRuntimeException 
        {
                ScalarObject ret = null;
                String retName = null;

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/WhileProgramBlock.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/WhileProgramBlock.java 
b/src/main/java/org/apache/sysml/runtime/controlprogram/WhileProgramBlock.java
index 1edfd22..c84a7c3 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/WhileProgramBlock.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/WhileProgramBlock.java
@@ -27,7 +27,6 @@ import org.apache.sysml.parser.WhileStatementBlock;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.DMLScriptException;
-import org.apache.sysml.runtime.DMLUnsupportedOperationException;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 import org.apache.sysml.runtime.instructions.Instruction;
 import org.apache.sysml.runtime.instructions.Instruction.INSTRUCTION_TYPE;
@@ -114,7 +113,7 @@ public class WhileProgramBlock extends ProgramBlock
                { return _exitInstructions; }
        
        private BooleanObject executePredicate(ExecutionContext ec) 
-               throws DMLRuntimeException, DMLUnsupportedOperationException 
+               throws DMLRuntimeException 
        {
                BooleanObject result = null;
                try
@@ -168,7 +167,7 @@ public class WhileProgramBlock extends ProgramBlock
                return result;
        }
        
-       public void execute(ExecutionContext ec) throws DMLRuntimeException, 
DMLUnsupportedOperationException {
+       public void execute(ExecutionContext ec) throws DMLRuntimeException {
 
                BooleanObject predResult = executePredicate(ec); 
                

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheIOException.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheIOException.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheIOException.java
deleted file mode 100644
index dff68b8..0000000
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheIOException.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.sysml.runtime.controlprogram.caching;
-
-
-public class CacheIOException extends CacheException
-{
-
-       
-       private static final long serialVersionUID = 1L;
-
-       public CacheIOException ()
-       {
-               super ();
-       }
-
-       public CacheIOException (String message)
-       {
-               super (message);
-       }
-
-       public CacheIOException (Exception cause)
-       {
-               super (cause);
-       }
-
-       public CacheIOException (String message, Exception cause)
-       {
-               super (message, cause);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheStatusException.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheStatusException.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheStatusException.java
deleted file mode 100644
index fa392df..0000000
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheStatusException.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.sysml.runtime.controlprogram.caching;
-
-
-public class CacheStatusException extends CacheException
-{
-
-       
-       private static final long serialVersionUID = 1L;
-
-       public CacheStatusException (String message)
-       {
-               super (message);
-       }
-
-       public CacheStatusException (Exception cause)
-       {
-               super (cause);
-       }
-
-       public CacheStatusException (String message, Exception cause)
-       {
-               super (message, cause);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java
index b3bd8ff..be6f287 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheableData.java
@@ -396,23 +396,19 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * 
         * @param data 
         * 
-        * @throws CacheIOException if the eviction fails, the data blob
-        *     remains as it was at the start.
+        * @throws CacheException 
         */
        protected abstract void evictBlobFromMemory(T data) 
-               throws CacheIOException;
+               throws CacheException;
        
        /**
         * Low-level cache I/O method that physically restores the data blob to
         * main memory.  Must be defined by a subclass, never called by users.
         *
-        * @throws CacheIOException if the restore fails, the data blob
-        *     remains as it was at the start.
-        * @throws CacheAssignmentException if the restored blob cannot be 
assigned
-        *     to this envelope.
+        * @throws CacheException 
         */
        protected abstract void restoreBlobIntoMemory()
-               throws CacheIOException;
+               throws CacheException;
 
        /**
         * Low-level cache I/O method that deletes the file containing the
@@ -487,12 +483,12 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                break;
                        case READ:
                                if (isModify)
-                                       throw new CacheStatusException 
("READ-MODIFY not allowed.");
+                                       throw new CacheException ("READ-MODIFY 
not allowed.");
                                else
                                        addOneRead();
                                break;
                        case MODIFY:
-                               throw new CacheStatusException ("MODIFY-MODIFY 
not allowed.");
+                               throw new CacheException ("MODIFY-MODIFY not 
allowed.");
                }
 
                if( LOG.isTraceEnabled() )
@@ -520,7 +516,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                        case EMPTY:
                        case CACHED:
                        case CACHED_NOWRITE:    
-                               throw new CacheStatusException("Redundant 
release.");
+                               throw new CacheException("Redundant release.");
                        case READ:
                                removeOneRead( isBlobPresent(), cacheNoWrite );
                                break;

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6c89c3a7/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java
index 0055a51..78dcdf5 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/FrameObject.java
@@ -161,12 +161,12 @@ public class FrameObject extends CacheableData<FrameBlock>
        }
 
        @Override
-       protected void evictBlobFromMemory(FrameBlock mb) throws 
CacheIOException {
+       protected void evictBlobFromMemory(FrameBlock mb) throws CacheException 
{
                throw new RuntimeException("Caching not implemented yet for 
FrameObject.");
        }
 
        @Override
-       protected void restoreBlobIntoMemory() throws CacheIOException {
+       protected void restoreBlobIntoMemory() throws CacheException {
                throw new RuntimeException("Caching not implemented yet for 
FrameObject.");
        }
 

Reply via email to