http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IfStatementBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/IfStatementBlock.java 
b/src/main/java/org/apache/sysml/parser/IfStatementBlock.java
index 00295d1..aa9c7b5 100644
--- a/src/main/java/org/apache/sysml/parser/IfStatementBlock.java
+++ b/src/main/java/org/apache/sysml/parser/IfStatementBlock.java
@@ -19,14 +19,12 @@
 
 package org.apache.sysml.parser;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map.Entry;
 
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.parser.Expression.DataType;
@@ -40,8 +38,7 @@ public class IfStatementBlock extends StatementBlock
        
        @Override
        public VariableSet validate(DMLProgram dmlProg, VariableSet ids, 
HashMap<String,ConstIdentifier> constVars, boolean conditional) 
-               throws LanguageException, ParseException, IOException 
-       {               
+       {
                if (_statements.size() > 1){
                        raiseValidateError("IfStatementBlock should only have 1 
statement (IfStatement)", conditional);
                }
@@ -287,8 +284,7 @@ public class IfStatementBlock extends StatementBlock
        
        @Override
        public VariableSet initializeforwardLV(VariableSet activeInPassed) 
-               throws LanguageException 
-       {       
+       {
                IfStatement ifstmt = (IfStatement)_statements.get(0);
                if (_statements.size() > 1){
                        LOG.error(ifstmt.printErrorLocation() + 
"IfStatementBlock should have only 1 statement (if statement)");
@@ -421,8 +417,7 @@ public class IfStatementBlock extends StatementBlock
 
        @Override
        public VariableSet initializebackwardLV(VariableSet loPassed) 
-               throws LanguageException
-       {       
+       {
                IfStatement ifstmt = (IfStatement)_statements.get(0);
                if (_statements.size() > 1){
                        LOG.error(ifstmt.printErrorLocation() + 
"IfStatementBlock should have only 1 statement (if statement)");
@@ -468,7 +463,7 @@ public class IfStatementBlock extends StatementBlock
        }
 
        @Override
-       public VariableSet analyze(VariableSet loPassed) throws 
LanguageException{
+       public VariableSet analyze(VariableSet loPassed) {
                
                VariableSet predVars = 
((IfStatement)_statements.get(0)).getConditionalPredicate().variablesRead();
                
predVars.addVariables(((IfStatement)_statements.get(0)).getConditionalPredicate().variablesUpdated());
@@ -515,7 +510,7 @@ public class IfStatementBlock extends StatementBlock
        // materialized hops recompilation flags
        ////
        
-       public boolean updatePredicateRecompilationFlag() throws HopsException {
+       public boolean updatePredicateRecompilationFlag() {
                return (_requiresPredicateRecompile =
                        ConfigurationManager.isDynamicRecompilation()
                        && 
Recompiler.requiresRecompilation(getPredicateHops()));

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ImportStatement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/ImportStatement.java 
b/src/main/java/org/apache/sysml/parser/ImportStatement.java
index 6b892d1..4f2c475 100644
--- a/src/main/java/org/apache/sysml/parser/ImportStatement.java
+++ b/src/main/java/org/apache/sysml/parser/ImportStatement.java
@@ -75,7 +75,7 @@ public class ImportStatement extends Statement
        
 
        @Override
-       public Statement rewriteStatement(String prefix) throws 
LanguageException{
+       public Statement rewriteStatement(String prefix) {
                LOG.error(this.printErrorLocation() + "rewriting for inlining 
not supported for ImportStatement");
                throw new LanguageException(this.printErrorLocation() + 
"rewriting for inlining not supported for ImportStatement");
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java 
b/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java
index 09dafc2..97e94c5 100644
--- a/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java
+++ b/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java
@@ -72,8 +72,7 @@ public class IndexedIdentifier extends DataIdentifier
        }
        
        public IndexPair 
calculateIndexedDimensions(HashMap<String,DataIdentifier> ids, HashMap<String, 
ConstIdentifier> currConstVars, boolean conditional) 
-               throws LanguageException 
-       {       
+       {
                // stores the updated row / col dimension info
                long updatedRowDim = -1, updatedColDim = -1;
                
@@ -528,7 +527,7 @@ public class IndexedIdentifier extends DataIdentifier
        
        
        @Override
-       public Expression rewriteExpression(String prefix) throws 
LanguageException {
+       public Expression rewriteExpression(String prefix) {
                IndexedIdentifier newIndexedIdentifier = new 
IndexedIdentifier(this.getName(), this._rowLowerEqualsUpper, 
this._colLowerEqualsUpper);
                newIndexedIdentifier.setParseInfo(this);
                
@@ -549,7 +548,7 @@ public class IndexedIdentifier extends DataIdentifier
                return newIndexedIdentifier;
        }
                
-       public void setIndices(ArrayList<ArrayList<Expression>> passed) throws 
LanguageException {
+       public void setIndices(ArrayList<ArrayList<Expression>> passed) {
                if (passed.size() != 2)
                        raiseValidateError("matrix indices must be specified 
for 2 dimensions");
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IntIdentifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/IntIdentifier.java 
b/src/main/java/org/apache/sysml/parser/IntIdentifier.java
index 1e384bc..3833ce0 100644
--- a/src/main/java/org/apache/sysml/parser/IntIdentifier.java
+++ b/src/main/java/org/apache/sysml/parser/IntIdentifier.java
@@ -26,7 +26,7 @@ public class IntIdentifier extends ConstIdentifier
        private long _val;
        
        @Override
-       public Expression rewriteExpression(String prefix) throws 
LanguageException{
+       public Expression rewriteExpression(String prefix) {
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IterablePredicate.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/IterablePredicate.java 
b/src/main/java/org/apache/sysml/parser/IterablePredicate.java
index ea49073..cf859c3 100644
--- a/src/main/java/org/apache/sysml/parser/IterablePredicate.java
+++ b/src/main/java/org/apache/sysml/parser/IterablePredicate.java
@@ -61,7 +61,7 @@ public class IterablePredicate extends Expression
        }
        
        @Override
-       public Expression rewriteExpression(String prefix) throws 
LanguageException {
+       public Expression rewriteExpression(String prefix) {
                //DataIdentifier newIterVar = 
(DataIdentifier)_iterVar.rewriteExpression(prefix);
                //return new IterablePredicate(newIterVar, _from, _to, 
_increment);
                LOG.error(this.printErrorLocation() + "rewriteExpression not 
supported for IterablePredicate");
@@ -70,7 +70,6 @@ public class IterablePredicate extends Expression
        
        @Override
        public void validateExpression(HashMap<String, DataIdentifier> ids, 
HashMap<String, ConstIdentifier> constVars, boolean conditional) 
-               throws LanguageException 
        {
                //recursive validate
                if (_iterVar instanceof FunctionCallIdentifier
@@ -185,9 +184,7 @@ public class IterablePredicate extends Expression
                return sb.toString();
        }
        
-       private void checkNumericScalarOutput( Expression expr )
-               throws LanguageException
-       {
+       private void checkNumericScalarOutput( Expression expr ) {
                if( expr == null || expr.getOutput() == null )
                        return;
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java 
b/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java
index 0417edb..e851907 100644
--- a/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java
+++ b/src/main/java/org/apache/sysml/parser/LiveVariableAnalysis.java
@@ -85,9 +85,9 @@ public abstract class LiveVariableAnalysis
                _read = vars;
        }
        
-       public abstract VariableSet initializeforwardLV(VariableSet activeIn) 
throws LanguageException;
-       public abstract VariableSet initializebackwardLV(VariableSet loPassed) 
throws LanguageException;
-       public abstract VariableSet analyze(VariableSet loPassed) throws 
LanguageException;
+       public abstract VariableSet initializeforwardLV(VariableSet activeIn);
+       public abstract VariableSet initializebackwardLV(VariableSet loPassed);
+       public abstract VariableSet analyze(VariableSet loPassed);
        
        public void updateLiveVariablesOut(VariableSet liveOut){
                 updateLiveVariables(_liveOut,liveOut);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java 
b/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java
index 4010a65..b01dd2e 100644
--- a/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java
+++ b/src/main/java/org/apache/sysml/parser/MultiAssignmentStatement.java
@@ -33,8 +33,7 @@ public class MultiAssignmentStatement extends Statement
        
        // rewrites statement to support function inlining (creates deep copy) 
        @Override
-       public Statement rewriteStatement(String prefix) throws 
LanguageException{
-                               
+       public Statement rewriteStatement(String prefix) {
                ArrayList<DataIdentifier> newTargetList = new ArrayList<>();
                
                // rewrite targetList (deep copy)

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/OutputStatement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/OutputStatement.java 
b/src/main/java/org/apache/sysml/parser/OutputStatement.java
index af02f8f..43b1edd 100644
--- a/src/main/java/org/apache/sysml/parser/OutputStatement.java
+++ b/src/main/java/org/apache/sysml/parser/OutputStatement.java
@@ -70,27 +70,20 @@ public class OutputStatement extends Statement
                        return false;
        }
        
-       public void addExprParam(String name, Expression value, boolean 
fromMTDFile) 
-               throws LanguageException
-       {
+       public void addExprParam(String name, Expression value, boolean 
fromMTDFile) {
                if( _paramsExpr.getVarParam(name) != null )
                        raiseValidateError("attempted to add IOStatement 
parameter " + name + " more than once", false);
-               
                if( !OutputStatement.isValidParamName(name) )
                        raiseValidateError("attempted to add invalid write 
statement parameter: " + name, false);
-               
                _paramsExpr.addVarParam(name, value);
        }
        
        // rewrites statement to support function inlining (create deep copy)
        @Override
-       public Statement rewriteStatement(String prefix) throws 
LanguageException{
-
+       public Statement rewriteStatement(String prefix) {
                OutputStatement newStatement = new OutputStatement(null, 
Expression.DataOp.WRITE, this);
-
                // rewrite outputStatement variable name (creates deep copy)
                newStatement._id = 
(DataIdentifier)this._id.rewriteExpression(prefix);
-               
                // rewrite parameter expressions (creates deep copy)
                DataOp op = _paramsExpr.getOpCode();
                HashMap<String,Expression> newExprParams = new HashMap<>();
@@ -102,10 +95,11 @@ public class OutputStatement extends Statement
                newStatement.setExprParams(newParamerizedExpr);
                return newStatement;
        }
-               
+
        public void setExprParams(DataExpression newParamerizedExpr) {
                _paramsExpr = newParamerizedExpr;
        }
+
        public Expression getExprParam(String key){
                return _paramsExpr.getVarParam(key);
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java 
b/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java
index d209c36..dee1384 100644
--- a/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java
+++ b/src/main/java/org/apache/sysml/parser/ParForStatementBlock.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysml.parser;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -175,8 +174,7 @@ public class ParForStatementBlock extends ForStatementBlock
        
        @Override
        public VariableSet validate(DMLProgram dmlProg, VariableSet ids, 
HashMap<String,ConstIdentifier> constVars, boolean conditional)
-               throws LanguageException, ParseException, IOException
-       {       
+       {
                LOG.trace("PARFOR("+_ID+"): validating ParForStatementBlock.");
                
                //create parent variable set via cloning
@@ -419,10 +417,8 @@ public class ParForStatementBlock extends ForStatementBlock
         * @param asb list of statement blocks
         * @param C set of candidates
         * @param sCount statement count
-        * @throws LanguageException if LanguageException occurs
         */
        private void rDetermineCandidates(ArrayList<StatementBlock> asb, 
HashSet<Candidate> C, Integer sCount) 
-               throws LanguageException 
        {
                for(StatementBlock sb : asb ) // foreach statementblock in 
parforbody
                        for( Statement s : sb._statements ) // foreach 
statement in statement block
@@ -476,10 +472,8 @@ public class ParForStatementBlock extends ForStatementBlock
         * @param var variables
         * @param asb list of statement blocks
         * @param C list of partition formats
-        * @throws LanguageException if LanguageException occurs
         */
        private void rDeterminePartitioningCandidates(String var, 
ArrayList<StatementBlock> asb, List<PartitionFormat> C) 
-               throws LanguageException 
        {
                for(StatementBlock sb : asb ) // foreach statementblock in 
parforbody
                        for( Statement s : sb._statements ) // foreach 
statement in statement block
@@ -600,7 +594,6 @@ public class ParForStatementBlock extends ForStatementBlock
        }
        
        private void rConsolidateResultVars(ArrayList<StatementBlock> asb, 
ArrayList<ResultVar> vars) 
-               throws LanguageException 
        {
                for(StatementBlock sb : asb ) // foreach statementblock in 
parforbody
                {
@@ -633,12 +626,10 @@ public class ParForStatementBlock extends 
ForStatementBlock
         * @param asb list of statement blocks
         * @param sCount statement count
         * @param dep array of boolean potential output dependencies
-        * @throws LanguageException if LanguageException occurs
         */
        private void rCheckCandidates(Candidate c, DataType cdt,
                        ArrayList<StatementBlock> asb, Integer sCount, 
boolean[] dep) 
-               throws LanguageException 
-       {       
+       {
                // check candidate only (output dependency if scalar or 
constant matrix subscript)
                if(    cdt == DataType.SCALAR 
                        || cdt == DataType.OBJECT  ) //dat2 checked for other 
candidate 
@@ -865,7 +856,7 @@ public class ParForStatementBlock extends ForStatementBlock
                return ret;
        }
        
-       private void rDetermineBounds( ArrayList<StatementBlock> sbs, boolean 
flag ) throws LanguageException {
+       private void rDetermineBounds( ArrayList<StatementBlock> sbs, boolean 
flag ) {
                for( StatementBlock sb : sbs )
                        rDetermineBounds(sb, flag);
        }
@@ -875,10 +866,8 @@ public class ParForStatementBlock extends ForStatementBlock
         * 
         * @param sb statement block
         * @param flag indicates that method is already in subtree of THIS.
-        * @throws LanguageException if LanguageException occurs
         */
        private void rDetermineBounds( StatementBlock sb, boolean flag ) 
-               throws LanguageException
        {
                // catch all known for/ parfor bounds 
                // (all unknown bounds are assumed to be +-infinity)
@@ -1000,10 +989,8 @@ public class ParForStatementBlock extends 
ForStatementBlock
         * @param dat1 data identifier 1
         * @param dat2 data identifier 2
         * @return true if "anti or data dependency"
-        * @throws LanguageException if LanguageException occurs
         */
        private boolean runBanerjeeGCDTest(DataIdentifier dat1, DataIdentifier 
dat2) 
-               throws LanguageException 
        {
                /* The GCD (greatest common denominator) and the Banerjee test 
are two commonly used tests
                 * for determining loop-carried dependencies. Both rely on (1) 
linear index expressions of the
@@ -1151,10 +1138,8 @@ public class ParForStatementBlock extends 
ForStatementBlock
         * 
         * @param dat1 data identifier
         * @return true if dependency
-        * @throws LanguageException if LanguageException occurs
         */
        private boolean runConstantCheck(DataIdentifier dat1) 
-               throws LanguageException 
        {
                LOG.trace("PARFOR: runConstantCheck.");
                
@@ -1201,10 +1186,8 @@ public class ParForStatementBlock extends 
ForStatementBlock
         * @param dat1 data identifier 1
         * @param dat2 data identifier 2
         * @return true if equal data identifiers
-        * @throws LanguageException if LanguageException occurs
         */
        private boolean runEqualsCheck(DataIdentifier dat1, DataIdentifier 
dat2) 
-               throws LanguageException 
        {
                LOG.trace("PARFOR: runEqualsCheck.");
                
@@ -1272,10 +1255,8 @@ public class ParForStatementBlock extends 
ForStatementBlock
         * 
         * @param dat data identifier
         * @return linear function
-        * @throws LanguageException if LanguageException occurs
         */
        private LinearFunction getLinearFunction(DataIdentifier dat)
-               throws LanguageException
        {
                /* Notes:
                 * - Currently, this function supports 2dim matrix subscripts 
with arbitrary linear functions
@@ -1463,7 +1444,6 @@ public class ParForStatementBlock extends 
ForStatementBlock
        }
        
        private LinearFunction getRowLinearFunction(DataIdentifier dat) 
-               throws LanguageException
        {
                //NOTE: would require separate function cache, not realized due 
to inexpensive operations
                
@@ -1501,7 +1481,6 @@ public class ParForStatementBlock extends 
ForStatementBlock
        }
        
        private LinearFunction getColLinearFunction(DataIdentifier dat) 
-               throws LanguageException
        {
                //NOTE: would require separate function cache, not realized due 
to inexpensive operations
                
@@ -1538,8 +1517,7 @@ public class ParForStatementBlock extends 
ForStatementBlock
                return out;
        }
        
-       private LinearFunction getLinearFunction(Expression expr, boolean 
ignoreMinWithConstant) 
-               throws LanguageException {
+       private LinearFunction getLinearFunction(Expression expr, boolean 
ignoreMinWithConstant) {
                if( expr instanceof IntIdentifier )
                        return new 
LinearFunction(((IntIdentifier)expr).getValue(), 0, null);
                else if( expr instanceof BinaryExpression )
@@ -1611,10 +1589,8 @@ public class ParForStatementBlock extends 
ForStatementBlock
         * robustness purposes.
         * 
         * @param f1 linear function
-        * @throws LanguageException if LanguageException occurs
         */
        private void verifyFunction(LinearFunction f1)
-               throws LanguageException
        {
                //check for required form of linear functions
                if( f1 == null || f1._b.length != f1._vars.length ) {
@@ -1687,10 +1663,8 @@ public class ParForStatementBlock extends 
ForStatementBlock
         * 
         * @param be binary expression
         * @return linear function
-        * @throws LanguageException if LanguageException occurs
         */
        private LinearFunction rParseBinaryExpression(BinaryExpression be) 
-               throws LanguageException
        {
                LinearFunction ret = null;
                Expression l = be.getLeft();

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java
 
b/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java
index dbb2a1e..e80b46f 100644
--- 
a/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java
+++ 
b/src/main/java/org/apache/sysml/parser/ParameterizedBuiltinFunctionExpression.java
@@ -144,7 +144,7 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
        }
 
        @Override
-       public Expression rewriteExpression(String prefix) throws 
LanguageException {
+       public Expression rewriteExpression(String prefix) {
                HashMap<String,Expression> newVarParams = new HashMap<>();
                for (String key : _varParams.keySet()){
                        Expression newExpr = 
_varParams.get(key).rewriteExpression(prefix);
@@ -181,8 +181,7 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
         */
        @Override
        public void validateExpression(HashMap<String, DataIdentifier> ids, 
HashMap<String, ConstIdentifier> constVars, boolean conditional)
-                       throws LanguageException 
-       {               
+       {
                // validate all input parameters
                for ( String s : getVarParams().keySet() ) {
                        Expression paramExpr = getVarParam(s);
@@ -264,7 +263,6 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
 
        @Override
        public void validateExpression(MultiAssignmentStatement stmt, 
HashMap<String, DataIdentifier> ids, HashMap<String, ConstIdentifier> 
constVars, boolean conditional)
-               throws LanguageException 
        {
                // validate all input parameters
                for ( String s : getVarParams().keySet() ) {
@@ -296,7 +294,6 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
        
        // example: A = transformapply(target=X, meta=M, spec=s)
        private void validateTransformApply(DataIdentifier output, boolean 
conditional) 
-               throws LanguageException 
        {
                //validate data / metadata (recode maps)
                checkDataType("transformapply", TF_FN_PARAM_DATA, 
DataType.FRAME, conditional);
@@ -313,7 +310,6 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
        }
        
        private void validateTransformDecode(DataIdentifier output, boolean 
conditional) 
-               throws LanguageException 
        {
                //validate data / metadata (recode maps) 
                checkDataType("transformdecode", TF_FN_PARAM_DATA, 
DataType.MATRIX, conditional);
@@ -330,7 +326,6 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
        }
        
        private void validateTransformColmap(DataIdentifier output, boolean 
conditional) 
-               throws LanguageException 
        {
                //validate data / metadata (recode maps) 
                Expression exprTarget = getVarParam(Statement.GAGG_TARGET);
@@ -347,7 +342,6 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
        }
        
        private void validateTransformMeta(DataIdentifier output, boolean 
conditional) 
-               throws LanguageException 
        {
                //validate specification
                checkDataValueType("transformmeta", TF_FN_PARAM_SPEC, 
DataType.SCALAR, ValueType.STRING, conditional);
@@ -363,7 +357,6 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
        }
        
        private void validateTransformEncode(DataIdentifier output1, 
DataIdentifier output2, boolean conditional) 
-               throws LanguageException 
        {
                //validate data / metadata (recode maps) 
                checkDataType("transformencode", TF_FN_PARAM_DATA, 
DataType.FRAME, conditional);
@@ -381,7 +374,7 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
                output2.setDimensions(-1, -1);
        }
        
-       private void validateTransformSpec(String pname, boolean conditional) 
throws LanguageException {
+       private void validateTransformSpec(String pname, boolean conditional) {
                Expression data = getVarParam(pname);
                if( data instanceof StringIdentifier ) {
                        try {
@@ -395,7 +388,7 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
                }
        }
        
-       private void validateReplace(DataIdentifier output, boolean 
conditional) throws LanguageException {
+       private void validateReplace(DataIdentifier output, boolean 
conditional) {
                //check existence and correctness of arguments
                Expression target = getVarParam("target");
                if( target==null ) {                            
@@ -427,7 +420,7 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
                output.setDimensions(target.getOutput().getDim1(), 
target.getOutput().getDim2());
        }
 
-       private void validateOrder(DataIdentifier output, boolean conditional) 
throws LanguageException {
+       private void validateOrder(DataIdentifier output, boolean conditional) {
                //check existence and correctness of arguments
                Expression target = getVarParam("target"); //[MANDATORY] TARGET
                if( target==null ) {                            
@@ -478,7 +471,7 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
                
        }
 
-       private void validateRemoveEmpty(DataIdentifier output, boolean 
conditional) throws LanguageException {
+       private void validateRemoveEmpty(DataIdentifier output, boolean 
conditional) {
                
                //check for invalid parameters
                Set<String> valid = UtilFunctions.asSet("target", "margin", 
"select", "empty.return");
@@ -525,7 +518,6 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
        }
        
        private void validateGroupedAgg(DataIdentifier output, boolean 
conditional) 
-               throws LanguageException 
        {
                //check existing target and groups
                if (getVarParam(Statement.GAGG_TARGET)  == null || 
getVarParam(Statement.GAGG_GROUPS) == null){
@@ -630,7 +622,7 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
                output.setDimensions(outputDim1, outputDim2);
        }
        
-       private void validateDistributionFunctions(DataIdentifier output, 
boolean conditional) throws LanguageException {
+       private void validateDistributionFunctions(DataIdentifier output, 
boolean conditional) {
                // CDF and INVCDF expects one unnamed parameter, it must be 
renamed as "quantile" 
                // (i.e., we must compute P(X <= x) where x is called as 
"quantile" )
                
@@ -712,9 +704,7 @@ public class ParameterizedBuiltinFunctionExpression extends 
DataIdentifier
                output.setDimensions(0, 0);
        }
        
-       private void validateCastAsString(DataIdentifier output, boolean 
conditional) 
-               throws LanguageException 
-       {
+       private void validateCastAsString(DataIdentifier output, boolean 
conditional) {
                HashMap<String, Expression> varParams = getVarParams();
                
                // replace parameter name for matrix argument
@@ -737,21 +727,18 @@ public class ParameterizedBuiltinFunctionExpression 
extends DataIdentifier
                output.setDimensions(0, 0);
        }
 
-       private void checkDataType( String fname, String pname, DataType dt, 
boolean conditional ) 
-               throws LanguageException 
-       {
+       private void checkDataType( String fname, String pname, DataType dt, 
boolean conditional ) {
                Expression data = getVarParam(pname);
-               if( data==null )                                
+               if( data==null )
                        raiseValidateError("Named parameter '" + pname + "' 
missing. Please specify the input.", conditional, 
LanguageErrorCodes.INVALID_PARAMETERS);
                else if( data.getOutput().getDataType() != dt )
                        raiseValidateError("Input to "+fname+"::"+pname+" must 
be of type '"+dt.toString()+"'. It is of type 
'"+data.getOutput().getDataType()+"'.", conditional, 
LanguageErrorCodes.INVALID_PARAMETERS);               
        }
 
        private void checkDataValueType( String fname, String pname, DataType 
dt, ValueType vt, boolean conditional ) 
-               throws LanguageException 
        {
                Expression data = getVarParam(pname);
-               if( data==null )                                
+               if( data==null )
                        raiseValidateError("Named parameter '" + pname + "' 
missing. Please specify the input.", conditional, 
LanguageErrorCodes.INVALID_PARAMETERS);
                else if( data.getOutput().getDataType() != dt || 
data.getOutput().getValueType() != vt )
                        raiseValidateError("Input to "+fname+"::"+pname+" must 
be of type '"+dt.toString()+"', '"+vt.toString()+"'. "

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ParserWrapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/ParserWrapper.java 
b/src/main/java/org/apache/sysml/parser/ParserWrapper.java
index 71e405b..0f43971 100644
--- a/src/main/java/org/apache/sysml/parser/ParserWrapper.java
+++ b/src/main/java/org/apache/sysml/parser/ParserWrapper.java
@@ -45,8 +45,7 @@ public abstract class ParserWrapper {
        protected boolean atLeastOneWarning = false;
        protected List<ParseIssue> parseIssues;
        
-       public abstract DMLProgram parse(String fileName, String dmlScript, 
Map<String, String> argVals)
-               throws ParseException;
+       public abstract DMLProgram parse(String fileName, String dmlScript, 
Map<String, String> argVals);
 
        /**
         * Custom wrapper to convert statement into statement blocks. Called by 
doParse and in DmlSyntacticValidator for for, parfor, while, ...

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/PathStatement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/PathStatement.java 
b/src/main/java/org/apache/sysml/parser/PathStatement.java
index 6fe61af..9bb2666 100644
--- a/src/main/java/org/apache/sysml/parser/PathStatement.java
+++ b/src/main/java/org/apache/sysml/parser/PathStatement.java
@@ -35,7 +35,7 @@ public class PathStatement extends Statement
        }
        
        @Override
-       public Statement rewriteStatement(String prefix) throws 
LanguageException{
+       public Statement rewriteStatement(String prefix) {
                return this;
        }
        

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/PrintStatement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/PrintStatement.java 
b/src/main/java/org/apache/sysml/parser/PrintStatement.java
index 4740586..62ebf4a 100644
--- a/src/main/java/org/apache/sysml/parser/PrintStatement.java
+++ b/src/main/java/org/apache/sysml/parser/PrintStatement.java
@@ -42,7 +42,7 @@ public class PrintStatement extends Statement
        protected PRINTTYPE _type; // print, printf, or stop
        protected List<Expression> expressions;
 
-       private static PRINTTYPE getPrintType(String type, List<Expression> 
expressions) throws LanguageException {
+       private static PRINTTYPE getPrintType(String type, List<Expression> 
expressions) {
                if(type.equalsIgnoreCase("print")) {
                        if ((expressions == null) || (expressions.size() == 1)) 
{
                                return PRINTTYPE.PRINT;
@@ -60,22 +60,19 @@ public class PrintStatement extends Statement
                        throw new LanguageException("Unknown statement type: " 
+ type);
        }
 
-       public PrintStatement(ParserRuleContext ctx, String type, String 
filename)
-                       throws LanguageException {
+       public PrintStatement(ParserRuleContext ctx, String type, String 
filename) {
                this(getPrintType(type, null), null);
                setCtxValues(ctx);
                setFilename(filename);
        }
 
-       public PrintStatement(ParserRuleContext ctx, String type, 
List<Expression> expressions, String filename)
-                       throws LanguageException {
+       public PrintStatement(ParserRuleContext ctx, String type, 
List<Expression> expressions, String filename) {
                this(getPrintType(type, expressions), expressions);
                setCtxValues(ctx);
                setFilename(filename);
        }
 
-       public PrintStatement(PRINTTYPE type, List<Expression> expressions)
-                       throws LanguageException {
+       public PrintStatement(PRINTTYPE type, List<Expression> expressions) {
                _type = type;
                if (expressions == null) {
                        this.expressions = new ArrayList<>();
@@ -85,7 +82,7 @@ public class PrintStatement extends Statement
        }
 
        @Override
-       public Statement rewriteStatement(String prefix) throws 
LanguageException{
+       public Statement rewriteStatement(String prefix) {
                List<Expression> newExpressions = new ArrayList<>();
                for (Expression oldExpression : expressions) {
                        Expression newExpression = 
oldExpression.rewriteExpression(prefix);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/RelationalExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/RelationalExpression.java 
b/src/main/java/org/apache/sysml/parser/RelationalExpression.java
index af6424e..ca074cf 100644
--- a/src/main/java/org/apache/sysml/parser/RelationalExpression.java
+++ b/src/main/java/org/apache/sysml/parser/RelationalExpression.java
@@ -47,7 +47,7 @@ public class RelationalExpression extends Expression
        }
 
        @Override
-       public Expression rewriteExpression(String prefix) throws 
LanguageException {
+       public Expression rewriteExpression(String prefix) {
                RelationalExpression newExpr = new 
RelationalExpression(this._opcode, this);
                newExpr.setLeft(_left.rewriteExpression(prefix));
                newExpr.setRight(_right.rewriteExpression(prefix));
@@ -90,16 +90,15 @@ public class RelationalExpression extends Expression
         */
        @Override
        public void validateExpression(HashMap<String,DataIdentifier> ids, 
HashMap<String, ConstIdentifier> constVars, boolean conditional) 
-               throws LanguageException
-       {       
+       {
                //check for functions calls in expression
                if (_left instanceof FunctionCallIdentifier){
                        raiseValidateError("user-defined function calls not 
supported in relational expressions", 
-                           false, 
LanguageException.LanguageErrorCodes.UNSUPPORTED_EXPRESSION);
-               }               
+                               false, 
LanguageException.LanguageErrorCodes.UNSUPPORTED_EXPRESSION);
+               }
                if (_right instanceof FunctionCallIdentifier){
                        raiseValidateError("user-defined function calls not 
supported in relational expressions", 
-                           false, 
LanguageException.LanguageErrorCodes.UNSUPPORTED_EXPRESSION);
+                               false, 
LanguageException.LanguageErrorCodes.UNSUPPORTED_EXPRESSION);
                }
                
                // handle <NUMERIC> == <BOOLEAN> --> convert <BOOLEAN> to 
numeric value
@@ -165,10 +164,8 @@ public class RelationalExpression extends Expression
         * @param expr1 expression 1
         * @param expr2 expression 2
         * @param allowsMV ?
-        * @throws LanguageException
         */
        private void checkMatchingDimensions(Expression expr1, Expression 
expr2, boolean allowsMV) 
-               throws LanguageException 
        {
                if (expr1 != null && expr2 != null) {
                        

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/Statement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/Statement.java 
b/src/main/java/org/apache/sysml/parser/Statement.java
index 0b3aac2..4a54df4 100644
--- a/src/main/java/org/apache/sysml/parser/Statement.java
+++ b/src/main/java/org/apache/sysml/parser/Statement.java
@@ -67,10 +67,10 @@ public abstract class Statement implements ParseInfo
        public abstract VariableSet variablesRead();
        public abstract VariableSet variablesUpdated();
  
-       public abstract void initializeforwardLV(VariableSet activeIn) throws 
LanguageException;
-       public abstract VariableSet initializebackwardLV(VariableSet lo) throws 
LanguageException;
+       public abstract void initializeforwardLV(VariableSet activeIn);
+       public abstract VariableSet initializebackwardLV(VariableSet lo);
        
-       public abstract Statement rewriteStatement(String prefix) throws 
LanguageException;
+       public abstract Statement rewriteStatement(String prefix);
        
        // Used only insider python parser to allow for ignoring newline logic
        private boolean isEmptyNewLineStatement = false;
@@ -176,11 +176,11 @@ public abstract class Statement implements ParseInfo
                }
        }
 
-       public void raiseValidateError(String msg, boolean conditional) throws 
LanguageException {
+       public void raiseValidateError(String msg, boolean conditional) {
                raiseValidateError(msg, conditional, null);
        }
 
-       public void raiseValidateError(String msg, boolean conditional, String 
errorCode) throws LanguageException {
+       public void raiseValidateError(String msg, boolean conditional, String 
errorCode) {
                if (conditional) {// warning if conditional
                        String fullMsg = this.printWarningLocation() + msg;
                        LOG.warn(fullMsg);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/StatementBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/StatementBlock.java 
b/src/main/java/org/apache/sysml/parser/StatementBlock.java
index 04e4a34..1f0e81c 100644
--- a/src/main/java/org/apache/sysml/parser/StatementBlock.java
+++ b/src/main/java/org/apache/sysml/parser/StatementBlock.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysml.parser;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -30,7 +29,6 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.sysml.api.DMLScript;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.hops.rewrite.RewriteSplitDagDataDependentOperators;
 import org.apache.sysml.lops.Lop;
@@ -167,7 +165,7 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
                return ( stmt instanceof PrintStatement && 
(((PrintStatement)stmt).getType() == PRINTTYPE.STOP || 
((PrintStatement)stmt).getType() == PRINTTYPE.ASSERT) );
        }
 
-    public boolean isMergeableFunctionCallBlock(DMLProgram dmlProg) throws 
LanguageException{
+    public boolean isMergeableFunctionCallBlock(DMLProgram dmlProg) {
 
 //     if (DMLScript.ENABLE_DEBUG_MODE && !DMLScript.ENABLE_DEBUG_OPTIMIZER)
        if (DMLScript.ENABLE_DEBUG_MODE)
@@ -221,7 +219,7 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
                return true;
        }
 
-    public boolean isRewritableFunctionCall(Statement stmt, DMLProgram 
dmlProg) throws LanguageException{
+    public boolean isRewritableFunctionCall(Statement stmt, DMLProgram 
dmlProg) {
 
                // for regular stmt, check if this is a function call stmt block
                if (stmt instanceof AssignmentStatement || stmt instanceof 
MultiAssignmentStatement){
@@ -303,7 +301,7 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
        return ret;
     }
 
-       public static ArrayList<StatementBlock> 
mergeFunctionCalls(ArrayList<StatementBlock> body, DMLProgram dmlProg) throws 
LanguageException
+       public static ArrayList<StatementBlock> 
mergeFunctionCalls(ArrayList<StatementBlock> body, DMLProgram dmlProg) 
        {
                for(int i = 0; i <body.size(); i++){
 
@@ -573,7 +571,7 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
                return ret;
        }
        
-       public ArrayList<Statement> rewriteFunctionCallStatements (DMLProgram 
dmlProg, ArrayList<Statement> statements) throws LanguageException {
+       public ArrayList<Statement> rewriteFunctionCallStatements (DMLProgram 
dmlProg, ArrayList<Statement> statements) {
 
                ArrayList<Statement> newStatements = new ArrayList<>();
                for (Statement current : statements){
@@ -713,7 +711,6 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
        }
 
        public VariableSet validate(DMLProgram dmlProg, VariableSet ids, 
HashMap<String, ConstIdentifier> constVars, boolean conditional)
-               throws LanguageException, ParseException, IOException
        {
                _constVarsIn.putAll(constVars);
                _statements = rewriteFunctionCallStatements(dmlProg, 
_statements);
@@ -782,7 +779,6 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
        
        private void validateAssignmentStatement(Statement current, DMLProgram 
dmlProg, 
                VariableSet ids, HashMap<String, ConstIdentifier> 
currConstVars, boolean conditional) 
-                       throws LanguageException, IOException, ParseException 
        {
                AssignmentStatement as = (AssignmentStatement)current;
                DataIdentifier target = as.getTarget();
@@ -899,7 +895,6 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
        
        private void validateMultiAssignmentStatement(Statement current, 
DMLProgram dmlProg, 
                VariableSet ids, HashMap<String, ConstIdentifier> 
currConstVars, boolean conditional) 
-                       throws LanguageException, IOException 
        {
                MultiAssignmentStatement mas = (MultiAssignmentStatement) 
current;
                ArrayList<DataIdentifier> targetList = mas.getTargetList();
@@ -956,7 +951,6 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
        }
        
        public void setStatementFormatType(OutputStatement s, boolean 
conditionalValidate)
-               throws LanguageException, ParseException
        {
                //case of specified format parameter
                if (s.getExprParam(DataExpression.FORMAT_TYPE)!= null )
@@ -988,7 +982,6 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
        }
 
        public void setStatementFormatType(AssignmentStatement s, boolean 
conditionalValidate)
-               throws LanguageException, ParseException
        {
 
                if (!(s.getSource() instanceof DataExpression))
@@ -1034,7 +1027,7 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
         *
         */
        @Override
-       public VariableSet initializeforwardLV(VariableSet activeIn) throws 
LanguageException {
+       public VariableSet initializeforwardLV(VariableSet activeIn) {
 
                for (Statement s : _statements){
                        s.initializeforwardLV(activeIn);
@@ -1081,15 +1074,11 @@ public class StatementBlock extends 
LiveVariableAnalysis implements ParseInfo
        }
 
        @Override
-       public VariableSet initializebackwardLV(VariableSet loPassed)
-               throws LanguageException
-       {
+       public VariableSet initializebackwardLV(VariableSet loPassed) {
                int numStatements = _statements.size();
                VariableSet lo = new VariableSet(loPassed);
-               for (int i = numStatements-1; i>=0; i--){
+               for (int i = numStatements-1; i>=0; i--)
                        lo = _statements.get(i).initializebackwardLV(lo);
-               }
-
                return new VariableSet(lo);
        }
 
@@ -1102,8 +1091,7 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
        }
 
        @Override
-       public VariableSet analyze(VariableSet loPassed)
-               throws LanguageException {
+       public VariableSet analyze(VariableSet loPassed) {
                VariableSet candidateLO = new VariableSet();
                candidateLO.addVariables(loPassed);
                //candidateLO.addVariables(_gen);
@@ -1133,14 +1121,11 @@ public class StatementBlock extends 
LiveVariableAnalysis implements ParseInfo
        ///////////////////////////////////////////////////////////////
        // validate error handling (consistent for all expressions)
 
-       public void raiseValidateError( String msg, boolean conditional )
-               throws LanguageException
-       {
+       public void raiseValidateError( String msg, boolean conditional ) {
                raiseValidateError(msg, conditional, null);
        }
 
        public void raiseValidateError( String msg, boolean conditional, String 
errorCode )
-               throws LanguageException
        {
                if( conditional )  //warning if conditional
                {
@@ -1218,7 +1203,7 @@ public class StatementBlock extends LiveVariableAnalysis 
implements ParseInfo
        // materialized hops recompilation / updateinplace flags
        ////
 
-       public boolean updateRecompilationFlag() throws HopsException {
+       public boolean updateRecompilationFlag() {
                return (_requiresRecompile =
                        ConfigurationManager.isDynamicRecompilation()
                        && Recompiler.requiresRecompilation(getHops()));

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/StringIdentifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/StringIdentifier.java 
b/src/main/java/org/apache/sysml/parser/StringIdentifier.java
index aaaade27..f4aaeed 100644
--- a/src/main/java/org/apache/sysml/parser/StringIdentifier.java
+++ b/src/main/java/org/apache/sysml/parser/StringIdentifier.java
@@ -26,7 +26,7 @@ public class StringIdentifier extends ConstIdentifier
        private String _val;
 
        @Override
-       public Expression rewriteExpression(String prefix) throws 
LanguageException {
+       public Expression rewriteExpression(String prefix) {
                return this;
        }
 
@@ -69,9 +69,7 @@ public class StringIdentifier extends ConstIdentifier
        }
        
        @Override
-       public long getLongValue() 
-               throws LanguageException 
-       {
+       public long getLongValue() {
                throw new LanguageException("Unsupported string-to-long 
conversion.");
        }
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/WhileStatement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/WhileStatement.java 
b/src/main/java/org/apache/sysml/parser/WhileStatement.java
index d70b1ab..f10dce4 100644
--- a/src/main/java/org/apache/sysml/parser/WhileStatement.java
+++ b/src/main/java/org/apache/sysml/parser/WhileStatement.java
@@ -29,7 +29,7 @@ public class WhileStatement extends Statement
        private ArrayList<StatementBlock> _body;
        
        @Override
-       public Statement rewriteStatement(String prefix) throws 
LanguageException{
+       public Statement rewriteStatement(String prefix) {
                LOG.error(this.printErrorLocation() + "should not call 
rewriteStatement for WhileStatement");
                throw new LanguageException(this.printErrorLocation() + "should 
not call rewriteStatement for WhileStatement");
        }
@@ -82,14 +82,12 @@ public class WhileStatement extends Statement
        }
 
        @Override
-       public void initializeforwardLV(VariableSet activeIn) throws 
LanguageException{
-               LOG.error(this.printErrorLocation() + "should never call 
initializeforwardLV for WhileStatement");
+       public void initializeforwardLV(VariableSet activeIn) {
                throw new LanguageException(this.printErrorLocation() + "should 
never call initializeforwardLV for WhileStatement");
        }
        
        @Override
-       public VariableSet initializebackwardLV(VariableSet lo) throws 
LanguageException{
-               LOG.error(this.printErrorLocation() + "should never call 
initializeforwardLV for WhileStatement");
+       public VariableSet initializebackwardLV(VariableSet lo) {
                throw new LanguageException(this.printErrorLocation() + "should 
never call initializeforwardLV for WhileStatement");
        }
        

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java 
b/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java
index d34353a..58f1c9f 100644
--- a/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java
+++ b/src/main/java/org/apache/sysml/parser/WhileStatementBlock.java
@@ -19,13 +19,11 @@
 
 package org.apache.sysml.parser;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.lops.Lop;
 
@@ -39,8 +37,7 @@ public class WhileStatementBlock extends StatementBlock
        
        @Override
        public VariableSet validate(DMLProgram dmlProg, VariableSet ids, 
HashMap<String,ConstIdentifier> constVars, boolean conditional) 
-               throws LanguageException, ParseException, IOException 
-       {       
+       {
                if (_statements.size() > 1){
                        raiseValidateError("WhileStatementBlock should have 
only 1 statement (while statement)", conditional);
                }
@@ -165,7 +162,7 @@ public class WhileStatementBlock extends StatementBlock
        }
 
        @Override
-       public VariableSet initializeforwardLV(VariableSet activeInPassed) 
throws LanguageException {
+       public VariableSet initializeforwardLV(VariableSet activeInPassed) {
                
                WhileStatement wstmt = (WhileStatement)_statements.get(0);
                if (_statements.size() > 1){
@@ -224,7 +221,7 @@ public class WhileStatementBlock extends StatementBlock
        }
 
        @Override
-       public VariableSet initializebackwardLV(VariableSet loPassed) throws 
LanguageException{
+       public VariableSet initializebackwardLV(VariableSet loPassed) {
                
                WhileStatement wstmt = (WhileStatement)_statements.get(0);
                        
@@ -260,7 +257,7 @@ public class WhileStatementBlock extends StatementBlock
        }
        
        @Override
-       public VariableSet analyze(VariableSet loPassed) throws 
LanguageException{
+       public VariableSet analyze(VariableSet loPassed) {
                VariableSet predVars = new VariableSet();
                
predVars.addVariables(((WhileStatement)_statements.get(0)).getConditionalPredicate().variablesRead());
                
predVars.addVariables(((WhileStatement)_statements.get(0)).getConditionalPredicate().variablesUpdated());
@@ -313,7 +310,7 @@ public class WhileStatementBlock extends StatementBlock
        // materialized hops recompilation flags
        ////
        
-       public boolean updatePredicateRecompilationFlag() throws HopsException {
+       public boolean updatePredicateRecompilationFlag() {
                return (_requiresPredicateRecompile = 
                        ConfigurationManager.isDynamicRecompilation() 
                        && 
Recompiler.requiresRecompilation(getPredicateHops()));

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java 
b/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java
index 8714968..b44d448 100644
--- a/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java
+++ b/src/main/java/org/apache/sysml/parser/dml/DMLParserWrapper.java
@@ -81,10 +81,9 @@ public class DMLParserWrapper extends ParserWrapper
         * @param dmlScript script file contents
         * @param argVals script arguments
         * @return dml program, or null if error
-        * @throws ParseException if ParseException occurs
         */
        @Override
-       public DMLProgram parse(String fileName, String dmlScript, 
Map<String,String> argVals) throws ParseException {
+       public DMLProgram parse(String fileName, String dmlScript, 
Map<String,String> argVals) {
                DMLProgram prog = doParse(fileName, dmlScript, null, argVals);
                
                return prog;
@@ -97,9 +96,8 @@ public class DMLParserWrapper extends ParserWrapper
         * @param sourceNamespace namespace from source statement
         * @param argVals script arguments
         * @return dml program, or null if at least one error
-        * @throws ParseException if ParseException occurs
         */
-       public DMLProgram doParse(String fileName, String dmlScript, String 
sourceNamespace, Map<String,String> argVals) throws ParseException {
+       public DMLProgram doParse(String fileName, String dmlScript, String 
sourceNamespace, Map<String,String> argVals) {
                DMLProgram dmlPgm = null;
                
                ANTLRInputStream in;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java 
b/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java
index 8a81b46..7d96577 100644
--- a/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java
+++ b/src/main/java/org/apache/sysml/parser/pydml/PyDMLParserWrapper.java
@@ -64,10 +64,9 @@ public class PyDMLParserWrapper extends ParserWrapper
         * @param dmlScript script file contents
         * @param argVals script arguments
         * @return dml program, or null if error
-        * @throws ParseException if ParseException occurs
         */
        @Override
-       public DMLProgram parse(String fileName, String dmlScript, 
Map<String,String> argVals) throws ParseException {
+       public DMLProgram parse(String fileName, String dmlScript, 
Map<String,String> argVals) {
                DMLProgram prog = doParse(fileName, dmlScript, null, argVals);
                
                return prog;
@@ -80,9 +79,8 @@ public class PyDMLParserWrapper extends ParserWrapper
         * @param sourceNamespace namespace from source statement
         * @param argVals script arguments
         * @return dml program, or null if at least one error
-        * @throws ParseException if ParseException occurs
         */
-       public DMLProgram doParse(String fileName, String dmlScript, String 
sourceNamespace, Map<String,String> argVals) throws ParseException {
+       public DMLProgram doParse(String fileName, String dmlScript, String 
sourceNamespace, Map<String,String> argVals) {
                DMLProgram dmlPgm = null;
                
                ANTLRInputStream in;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 7348266..fdc4732 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/ParForProgramBlock.java
@@ -54,7 +54,6 @@ import org.apache.sysml.parser.ParForStatementBlock.ResultVar;
 import org.apache.sysml.parser.StatementBlock;
 import org.apache.sysml.parser.VariableSet;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.controlprogram.caching.CacheException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 import org.apache.sysml.runtime.controlprogram.context.SparkExecutionContext;
@@ -1301,7 +1300,6 @@ public class ParForProgramBlock extends ForProgramBlock
        }
 
        private void exportMatricesToHDFS(ExecutionContext ec, String... 
blacklistNames) 
-               throws CacheException 
        {
                ParForStatementBlock sb = 
(ParForStatementBlock)getStatementBlock();
                Set<String> blacklist = UtilFunctions.asSet(blacklistNames);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheException.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheException.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheException.java
deleted file mode 100644
index 64a3925..0000000
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheException.java
+++ /dev/null
@@ -1,50 +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;
-
-import org.apache.sysml.runtime.DMLRuntimeException;
-
-public class CacheException extends DMLRuntimeException
-{
-
-
-       private static final long serialVersionUID = 1L;
-
-       public CacheException ()
-       {
-               super ("Cache Exception");
-       }
-
-       public CacheException (String message)
-       {
-               super (message);
-       }
-
-       public CacheException (Exception cause)
-       {
-               super (cause);
-       }
-
-       public CacheException (String message, Exception cause)
-       {
-               super (message, cause);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 cdc0f03..b3791e1 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
@@ -308,7 +308,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
        }
 
        public abstract void refreshMetaData() 
-               throws CacheException;
+               throws DMLRuntimeException;
 
        public RDDObject getRDDHandle() {
                return _rddHandle;
@@ -369,17 +369,16 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * Out-Status: READ(+1).
         * 
         * @return cacheable data
-        * @throws CacheException if CacheException occurs
+        * @throws DMLRuntimeException if CacheException occurs
         */
        public synchronized T acquireRead()
-               throws CacheException
        {
                if( LOG.isTraceEnabled() )
                        LOG.trace("Acquire read "+hashCode());
                long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
                
                if ( !isAvailableToRead() )
-                       throw new CacheException ("MatrixObject not available 
to read.");
+                       throw new DMLRuntimeException("MatrixObject not 
available to read.");
                
                //get object from cache
                if( _data == null )
@@ -391,7 +390,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
             GPUObject gObj = kv.getValue();
             if (gObj != null && copiedFromGPU && gObj.isDirty()) {
                 LOG.error("Inconsistent internal state - A copy of this 
CacheableData was dirty on more than 1 GPU");
-                throw new CacheException("Internal Error : Inconsistent 
internal state, A copy of this CacheableData was dirty on more than 1 GPU");
+                throw new DMLRuntimeException("Internal Error : Inconsistent 
internal state, A copy of this CacheableData was dirty on more than 1 GPU");
             } else if (gObj != null){
                 copiedFromGPU = gObj.acquireHostRead(null);
                 if( _data == null )
@@ -412,7 +411,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                {
                                        //check filename
                                        if( _hdfsFileName == null )
-                                               throw new 
CacheException("Cannot read matrix for empty filename.");
+                                               throw new 
DMLRuntimeException("Cannot read matrix for empty filename.");
                                        
                                        //read cacheable data from hdfs
                                        _data = readBlobFromHDFS( _hdfsFileName 
);
@@ -434,7 +433,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                setDirty(false);
                        }
                        catch (IOException e) {
-                               throw new CacheException("Reading of " + 
_hdfsFileName + " ("+hashCode()+") failed.", e);
+                               throw new DMLRuntimeException("Reading of " + 
_hdfsFileName + " ("+hashCode()+") failed.", e);
                        }
                        
                        _isAcquireFromEmpty = true;
@@ -446,7 +445,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                }
                
                //cache status maintenance
-               acquire( false, _data==null );  
+               acquire( false, _data==null );
                updateStatusPinned(true);
                
                if( DMLScript.STATISTICS ){
@@ -466,17 +465,16 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * Out-Status: MODIFY.
         * 
         * @return cacheable data
-        * @throws CacheException if CacheException occurs
+        * @throws DMLRuntimeException if CacheException occurs
         */
        public synchronized T acquireModify() 
-               throws CacheException
        {
                if( LOG.isTraceEnabled() )
                        LOG.trace("Acquire modify "+hashCode());
                long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
                
                if ( !isAvailableToModify() )
-                       throw new CacheException("MatrixObject not available to 
modify.");
+                       throw new DMLRuntimeException("MatrixObject not 
available to modify.");
                
                //get object from cache
                if( _data == null )
@@ -487,16 +485,14 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                {
                        //check filename
                        if( _hdfsFileName == null )
-                               throw new CacheException("Cannot read matrix 
for empty filename.");
+                               throw new DMLRuntimeException("Cannot read 
matrix for empty filename.");
                        
                        //load data
-                       try
-                       {
+                       try {
                                _data = readBlobFromHDFS( _hdfsFileName );
                        }
-                       catch (IOException e)
-                       {
-                               throw new CacheException("Reading of " + 
_hdfsFileName + " ("+hashCode()+") failed.", e);
+                       catch (IOException e) {
+                               throw new DMLRuntimeException("Reading of " + 
_hdfsFileName + " ("+hashCode()+") failed.", e);
                        }
                }
 
@@ -514,7 +510,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                return _data;
        }
        
-       public T acquireModify(T newData) throws DMLRuntimeException {
+       public T acquireModify(T newData) {
                return acquireModify(newData, null);
        }
        
@@ -532,14 +528,13 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * @throws DMLRuntimeException if error occurs
         */
        public synchronized T acquireModify(T newData, String opcode)
-               throws DMLRuntimeException
        {
                if( LOG.isTraceEnabled() )
                        LOG.trace("Acquire modify newdata "+hashCode());
                long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
                
                if (! isAvailableToModify ())
-                       throw new CacheException ("CacheableData not available 
to modify.");
+                       throw new DMLRuntimeException("CacheableData not 
available to modify.");
                
                //clear old data
                clearData();
@@ -552,7 +547,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                
                //set references to new data
                if (newData == null)
-                       throw new CacheException("acquireModify with empty 
cache block.");
+                       throw new DMLRuntimeException("acquireModify with empty 
cache block.");
                _data = newData;
                updateStatusPinned(true);
                
@@ -573,7 +568,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                return _data;
        }
        
-       public void release() throws CacheException {
+       public void release() throws DMLRuntimeException {
                release(null);
        }
        
@@ -587,10 +582,9 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * In-Status:  READ, MODIFY;
         * Out-Status: READ(-1), EVICTABLE, EMPTY.
         * 
-        * @throws CacheException if CacheException occurs
+        * @throws DMLRuntimeException if CacheException occurs
         */
        public synchronized void release(String opcode) 
-               throws CacheException
        {
                if( LOG.isTraceEnabled() )
                        LOG.trace("Release "+hashCode());
@@ -633,14 +627,14 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                        }
                                }
                                catch (Exception e) {
-                                       throw new CacheException("Eviction to 
local path " + filePath + " ("+hashCode()+") failed.", e);
+                                       throw new DMLRuntimeException("Eviction 
to local path " + filePath + " ("+hashCode()+") failed.", e);
                                }
                                _requiresLocalWrite = false;
                        }
                        
                        //create cache
                        createCache();
-                       _data = null;                   
+                       _data = null;
                }
                else if( LOG.isTraceEnabled() ){
                        LOG.trace("Var "+hashCode()+" not subject to caching, 
state="+getStatusAsString());
@@ -663,7 +657,6 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * @throws DMLRuntimeException if error occurs
         */
        public synchronized void clearData() 
-               throws DMLRuntimeException
        {
                if( LOG.isTraceEnabled() )
                        LOG.trace("Clear data "+hashCode());
@@ -672,7 +665,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                if( !isCleanupEnabled() ) 
                        return; // do nothing
                if( !isAvailableToModify() )
-                       throw new CacheException ("CacheableData (" + 
getDebugName() + ") not available to "
+                       throw new DMLRuntimeException("CacheableData (" + 
getDebugName() + ") not available to "
                                        + "modify. Status = " + 
getStatusAsString() + ".");
                
                // clear existing WB / FS representation (but prevent 
unnecessary probes)
@@ -699,7 +692,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                setEmpty();
        }
 
-       public synchronized void exportData() throws CacheException {
+       public synchronized void exportData() {
                exportData( -1 );
        }
        
@@ -710,30 +703,22 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * Out-Status: EMPTY, EVICTABLE, EVICTED, READ.
         * 
         * @param replication ?
-        * @throws CacheException if CacheException occurs
+        * @throws DMLRuntimeException if CacheException occurs
         */
-       public synchronized void exportData( int replication ) 
-               throws CacheException 
-       {
+       public synchronized void exportData( int replication ) {
                exportData(_hdfsFileName, null, replication, null);
                _hdfsFileExists = true;
        }
 
-       public synchronized void exportData(String fName, String outputFormat)
-               throws CacheException
-       {
+       public synchronized void exportData(String fName, String outputFormat) {
                exportData(fName, outputFormat, -1, null);
        }
 
-       public synchronized void exportData(String fName, String outputFormat, 
FileFormatProperties formatProperties)
-               throws CacheException
-       {
+       public synchronized void exportData(String fName, String outputFormat, 
FileFormatProperties formatProperties) {
                exportData(fName, outputFormat, -1, formatProperties);
        }
        
-       public synchronized void exportData (String fName, String outputFormat, 
int replication, FileFormatProperties formatProperties)
-                       throws CacheException
-       {
+       public synchronized void exportData (String fName, String outputFormat, 
int replication, FileFormatProperties formatProperties) {
                exportData(fName, outputFormat, replication, formatProperties, 
null);
        }
        
@@ -753,36 +738,33 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * @param replication ?
         * @param formatProperties file format properties
         * @param opcode instruction opcode if available
-        * @throws CacheException if CacheException occurs
+        * @throws DMLRuntimeException if CacheException occurs
         */
-       public synchronized void exportData (String fName, String outputFormat, 
int replication, FileFormatProperties formatProperties, String opcode)
-               throws CacheException
-       {
+       public synchronized void exportData (String fName, String outputFormat, 
int replication, FileFormatProperties formatProperties, String opcode) {
                if( LOG.isTraceEnabled() )
                        LOG.trace("Export data "+hashCode()+" "+fName);
                long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
                
                //prevent concurrent modifications
                if ( !isAvailableToRead() )
-                       throw new CacheException ("MatrixObject not available 
to read.");
+                       throw new DMLRuntimeException("MatrixObject not 
available to read.");
 
                LOG.trace("Exporting " + this.getDebugName() + " to " + fName + 
" in format " + outputFormat);
                
                //TODO remove
-        boolean copiedFromGPU = false;
-        for (Map.Entry<GPUContext, GPUObject> kv : _gpuObjects.entrySet()) {
-            GPUObject gObj = kv.getValue();
-            if (gObj != null && copiedFromGPU && gObj.isDirty()) {
-                LOG.error("Inconsistent internal state - A copy of this 
CacheableData was dirty on more than 1 GPU");
-                throw new CacheException("Internal Error : Inconsistent 
internal state, A copy of this CacheableData was dirty on more than 1 GPU");
-            } else if (gObj != null){
-                copiedFromGPU = gObj.acquireHostRead(null);
-                if( _data == null )
-                    getCache();
-            }
-        }
+               boolean copiedFromGPU = false;
+               for (Map.Entry<GPUContext, GPUObject> kv : 
_gpuObjects.entrySet()) {
+                       GPUObject gObj = kv.getValue();
+                       if (gObj != null && copiedFromGPU && gObj.isDirty()) {
+                               throw new DMLRuntimeException("Internal Error : 
Inconsistent internal state, A copy of this CacheableData was dirty on more 
than 1 GPU");
+                       } else if (gObj != null){
+                               copiedFromGPU = gObj.acquireHostRead(null);
+                               if( _data == null )
+                                       getCache();
+                       }
+               }
                
-        //check for persistent or transient writes
+               //check for persistent or transient writes
                boolean pWrite = !fName.equals(_hdfsFileName);
                if( !pWrite )
                        setHDFSFileExists(true);
@@ -792,14 +774,14 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                        new Path(_hdfsFileName), new Path(fName));
                
                //actual export (note: no direct transfer of local copy in 
order to ensure blocking (and hence, parallelism))
-               if(  isDirty() || !eqScheme ||
-                   (pWrite && !isEqualOutputFormat(outputFormat)) ) 
-               {                 
+               if( isDirty() || !eqScheme ||
+                       (pWrite && !isEqualOutputFormat(outputFormat)) ) 
+               {
                        // CASE 1: dirty in-mem matrix or pWrite w/ different 
format (write matrix to fname; load into memory if evicted)
-                       // a) get the matrix            
+                       // a) get the matrix
                        if( isEmpty(true) )
                        {
-                           //read data from HDFS if required (never read 
before), this applies only to pWrite w/ different output formats
+                               //read data from HDFS if required (never read 
before), this applies only to pWrite w/ different output formats
                                //note: for large rdd outputs, we compile 
dedicated writespinstructions (no need to handle this here) 
                                try
                                {
@@ -811,7 +793,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                }
                                catch (IOException e)
                                {
-                                   throw new CacheException("Reading of " + 
_hdfsFileName + " ("+hashCode()+") failed.", e);
+                                   throw new DMLRuntimeException("Reading of " 
+ _hdfsFileName + " ("+hashCode()+") failed.", e);
                                }
                        }
                        //get object from cache
@@ -820,19 +802,16 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                        acquire( false, _data==null ); //incl. read matrix if 
evicted   
                        
                        // b) write the matrix 
-                       try
-                       {
+                       try {
                                writeMetaData( fName, outputFormat, 
formatProperties );
                                writeBlobToHDFS( fName, outputFormat, 
replication, formatProperties );
                                if ( !pWrite )
                                        setDirty(false);
                        }
-                       catch (Exception e)
-                       {
-                               throw new CacheException ("Export to " + fName 
+ " failed.", e);
+                       catch (Exception e) {
+                               throw new DMLRuntimeException("Export to " + 
fName + " failed.", e);
                        }
-                       finally
-                       {
+                       finally {
                                release(opcode);
                        }
                }
@@ -850,7 +829,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                writeMetaData( fName, outputFormat, 
formatProperties );
                        }
                        catch (Exception e) {
-                               throw new CacheException ("Export to " + fName 
+ " failed.", e);
+                               throw new DMLRuntimeException("Export to " + 
fName + " failed.", e);
                        }
                }
                else if( getRDDHandle()!=null && getRDDHandle().isPending()
@@ -868,7 +847,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                getRDDHandle().setPending(false);
                        }
                        catch (Exception e) {
-                               throw new CacheException ("Export to " + fName 
+ " failed.", e);
+                               throw new DMLRuntimeException("Export to " + 
fName + " failed.", e);
                        }
                }
                else 
@@ -902,11 +881,9 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
         * 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 CacheException if CacheException occurs
+        * @throws DMLRuntimeException if CacheException occurs
         */
-       protected void restoreBlobIntoMemory() 
-               throws CacheException
-       {
+       protected void restoreBlobIntoMemory() {
                String cacheFilePathAndName = getCacheFilePathAndName();
                long begin = LOG.isTraceEnabled() ? System.currentTimeMillis() 
: 0;
                
@@ -915,22 +892,22 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                                (_hdfsFileName == null ? "null" 
: _hdfsFileName) + ", Restore from path: " + cacheFilePathAndName);
                                
                if (_data != null)
-                       throw new CacheException (cacheFilePathAndName + " : 
Cannot restore on top of existing in-memory data.");
+                       throw new DMLRuntimeException(cacheFilePathAndName + " 
: Cannot restore on top of existing in-memory data.");
 
                try {
                        _data = readBlobFromCache(cacheFilePathAndName);
                }
                catch (IOException e) {
-                       throw new CacheException (cacheFilePathAndName + " : 
Restore failed.", e);      
+                       throw new DMLRuntimeException(cacheFilePathAndName + " 
: Restore failed.", e);  
                }
                
                //check for success
-           if (_data == null)
-                       throw new CacheException (cacheFilePathAndName + " : 
Restore failed.");
-           
-           if( LOG.isTraceEnabled() )
-               LOG.trace("Restoring matrix - COMPLETED ... " + 
(System.currentTimeMillis()-begin) + " msec.");
-       }               
+               if (_data == null)
+                       throw new DMLRuntimeException (cacheFilePathAndName + " 
: Restore failed.");
+               
+               if( LOG.isTraceEnabled() )
+                       LOG.trace("Restoring matrix - COMPLETED ... " + 
(System.currentTimeMillis()-begin) + " msec.");
+       }
 
        protected abstract T readBlobFromCache(String fname)
                throws IOException;
@@ -989,22 +966,22 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                throws IOException;
 
        protected abstract void writeBlobToHDFS(String fname, String ofmt, int 
rep, FileFormatProperties fprop) 
-               throws IOException, DMLRuntimeException;
+               throws IOException;
 
        protected abstract void writeBlobFromRDDtoHDFS(RDDObject rdd, String 
fname, String ofmt) 
-               throws IOException, DMLRuntimeException;
+               throws IOException;
 
        protected void writeMetaData (String filePathAndName, String 
outputFormat, FileFormatProperties formatProperties)
-               throws DMLRuntimeException, IOException
+               throws IOException
        {               
                MetaDataFormat iimd = (MetaDataFormat) _metaData;
        
                if (iimd == null)
                        throw new DMLRuntimeException("Unexpected error while 
writing mtd file (" + filePathAndName + ") -- metadata is null.");
                        
-               // Write the matrix to HDFS in requested format                 
+               // Write the matrix to HDFS in requested format
                OutputInfo oinfo = (outputFormat != null ? 
OutputInfo.stringToOutputInfo (outputFormat) 
-                : InputInfo.getMatchingOutputInfo (iimd.getInputInfo ()));
+                       : InputInfo.getMatchingOutputInfo (iimd.getInputInfo 
()));
                
                if ( oinfo != OutputInfo.MatrixMarketOutputInfo ) {
                        // Get the dimension information from the metadata 
stored within MatrixObject
@@ -1020,7 +997,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                        
                        //write the actual meta data file
                        MapReduceTool.writeMetaDataFile (filePathAndName + 
".mtd", valueType, 
-                                       getSchema(), dataType, mc, oinfo, 
formatProperties);
+                               getSchema(), dataType, mc, oinfo, 
formatProperties);
                }
        }
 
@@ -1079,11 +1056,8 @@ public abstract class CacheableData<T extends 
CacheBlock> extends Data
         * @param isModify : <code>true</code> for the exclusive "modify" lock,
         *     <code>false</code> for a shared "read" lock.
         * @param restore true if restore
-        * @throws CacheException if CacheException occurs
         */
-       protected void acquire (boolean isModify, boolean restore) 
-               throws CacheException
-       {
+       protected void acquire (boolean isModify, boolean restore) {
                switch ( _cacheStatus )
                {
                        case CACHED:
@@ -1098,12 +1072,12 @@ public abstract class CacheableData<T extends 
CacheBlock> extends Data
                                break;
                        case READ:
                                if (isModify)
-                                       throw new CacheException ("READ-MODIFY 
not allowed.");
+                                       throw new 
DMLRuntimeException("READ-MODIFY not allowed.");
                                else
                                        addOneRead();
                                break;
                        case MODIFY:
-                               throw new CacheException ("MODIFY-MODIFY not 
allowed.");
+                               throw new DMLRuntimeException("MODIFY-MODIFY 
not allowed.");
                }
 
                if( LOG.isTraceEnabled() )
@@ -1122,17 +1096,15 @@ public abstract class CacheableData<T extends 
CacheBlock> extends Data
         * the lock count.
         * 
         * @param cacheNoWrite ?
-        * @throws CacheException if CacheException occurs
         */
        protected void release(boolean cacheNoWrite)
-               throws CacheException
        {
                switch ( _cacheStatus )
                {
                        case EMPTY:
                        case CACHED:
-                       case CACHED_NOWRITE:    
-                               throw new CacheException("Redundant release.");
+                       case CACHED_NOWRITE:
+                               throw new DMLRuntimeException("Redundant 
release.");
                        case READ:
                                removeOneRead( isBlobPresent(), cacheNoWrite );
                                break;
@@ -1141,7 +1113,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                                        setCached();
                                else
                                        setEmpty();
-                           break;
+                               break;
                }
                
                if( LOG.isTraceEnabled() )
@@ -1160,7 +1132,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
        public String getStatusAsString() {
                return _cacheStatus.toString();
        }
-    
+
        public boolean isCached(boolean inclCachedNoWrite) {
                if( inclCachedNoWrite )
                        return (_cacheStatus == CacheStatus.CACHED || 
_cacheStatus == CacheStatus.CACHED_NOWRITE);
@@ -1371,9 +1343,7 @@ public abstract class CacheableData<T extends CacheBlock> 
extends Data
                _activeFlag = true;
        }
 
-       public synchronized boolean moveData(String fName, String outputFormat) 
-               throws CacheException 
-       {       
+       public synchronized boolean moveData(String fName, String outputFormat) 
{
                boolean ret = false;
                
                try
@@ -1396,11 +1366,10 @@ public abstract class CacheableData<T extends 
CacheBlock> extends Data
                                MapReduceTool.renameFileOnHDFS( _hdfsFileName, 
fName );
                                writeMetaData( fName, outputFormat, null );
                                ret = true;
-                       }                               
+                       }
                }
-               catch (Exception e)
-               {
-                       throw new CacheException ("Move to " + fName + " 
failed.", e);
+               catch (Exception e) {
+                       throw new DMLRuntimeException("Move to " + fName + " 
failed.", e);
                }
                
                return ret;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/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 28510cd..a37ac69 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
@@ -133,10 +133,10 @@ public class FrameObject extends CacheableData<FrameBlock>
                
        @Override
        public void refreshMetaData() 
-               throws CacheException
+               throws DMLRuntimeException
        {
                if ( _data == null || _metaData ==null ) //refresh only for 
existing data
-                       throw new CacheException("Cannot refresh meta data 
because there is no data or meta data. "); 
+                       throw new DMLRuntimeException("Cannot refresh meta data 
because there is no data or meta data. "); 
 
                //update matrix characteristics
                MatrixCharacteristics mc = _metaData.getMatrixCharacteristics();

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
index 8bf8efd..6aefbb3 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
@@ -140,15 +140,11 @@ public class MatrixObject extends 
CacheableData<MatrixBlock>
 
        /**
         * Make the matrix metadata consistent with the in-memory matrix data
-        * 
-        * @throws CacheException if CacheException occurs
         */
        @Override
-       public void refreshMetaData() 
-               throws CacheException
-       {
+       public void refreshMetaData() {
                if ( _data == null || _metaData ==null ) //refresh only for 
existing data
-                       throw new CacheException("Cannot refresh meta data 
because there is no data or meta data. "); 
+                       throw new DMLRuntimeException("Cannot refresh meta data 
because there is no data or meta data. "); 
                        //we need to throw an exception, otherwise input/output 
format cannot be inferred
                
                MatrixCharacteristics mc = _metaData.getMatrixCharacteristics();
@@ -233,17 +229,17 @@ public class MatrixObject extends 
CacheableData<MatrixBlock>
         * 
         * @param pred index range
         * @return matrix block
-        * @throws CacheException if CacheException occurs
+        * @throws DMLRuntimeException if CacheException occurs
         */
        public synchronized MatrixBlock readMatrixPartition( IndexRange pred ) 
-               throws CacheException
+               throws DMLRuntimeException
        {
                if( LOG.isTraceEnabled() )
                        LOG.trace("Acquire partition "+hashCode()+" "+pred);
                long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
                
                if ( !_partitioned )
-                       throw new CacheException ("MatrixObject not available 
to indexed read.");
+                       throw new DMLRuntimeException("MatrixObject not 
available to indexed read.");
                
                //return static partition of set from outside of the program
                if( _partitionInMemory != null )
@@ -302,7 +298,7 @@ public class MatrixObject extends CacheableData<MatrixBlock>
                                                cols = _partitionSize;
                                                break;  
                                        default:
-                                               throw new 
CacheException("Unsupported partition format: "+_partitionFormat);
+                                               throw new 
DMLRuntimeException("Unsupported partition format: "+_partitionFormat);
                                }
                                
                                
@@ -338,9 +334,8 @@ public class MatrixObject extends CacheableData<MatrixBlock>
                        //NOTE: currently no special treatment of non-existing 
partitions necessary 
                        //      because empty blocks are written anyway
                }
-               catch(Exception ex)
-               {
-                       throw new CacheException(ex);
+               catch(Exception ex) {
+                       throw new DMLRuntimeException(ex);
                }
                
                if( DMLScript.STATISTICS ){
@@ -352,10 +347,10 @@ public class MatrixObject extends 
CacheableData<MatrixBlock>
        }
 
        public String getPartitionFileName( IndexRange pred, int brlen, int 
bclen ) 
-               throws CacheException
+               throws DMLRuntimeException
        {
                if ( !_partitioned )
-                       throw new CacheException ("MatrixObject not available 
to indexed read.");
+                       throw new DMLRuntimeException("MatrixObject not 
available to indexed read.");
                
                StringBuilder sb = new StringBuilder();
                sb.append(_hdfsFileName);
@@ -387,7 +382,7 @@ public class MatrixObject extends CacheableData<MatrixBlock>
                                sb.append((pred.colStart-1)/_partitionSize+1);
                                break;  
                        default:
-                               throw new CacheException ("MatrixObject not 
available to indexed read.");
+                               throw new DMLRuntimeException("MatrixObject not 
available to indexed read.");
                }
 
                return sb.toString();

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
index 0768328..b2bd267 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
@@ -42,7 +42,6 @@ import org.apache.hadoop.mapred.Reporter;
 import org.apache.hadoop.mapred.TextInputFormat;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.controlprogram.caching.CacheException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.controlprogram.parfor.util.Cell;
 import org.apache.sysml.runtime.controlprogram.parfor.util.IDSequence;
@@ -976,7 +975,7 @@ public class ResultMergeLocalFile extends ResultMerge
        }
 
        private static void copyAllFiles( String fnameNew, 
ArrayList<MatrixObject> inMO ) 
-               throws CacheException, IOException
+               throws DMLRuntimeException, IOException
        {
                JobConf job = new 
JobConf(ConfigurationManager.getCachedJobConf());
                Path path = new Path( fnameNew );

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
index 28368c7..fc42996 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
@@ -50,7 +50,6 @@ public class OptTreePlanChecker
 {
 
        public static void checkProgramCorrectness( ProgramBlock pb, 
StatementBlock sb, Set<String> fnStack ) 
-               throws HopsException, DMLRuntimeException
        {
                Program prog = pb.getProgram();
                DMLProgram dprog = sb.getDMLProg();

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
index 3bb0c93..71295b4 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysml.runtime.controlprogram.parfor.opt;
 
-import java.io.IOException;
 import java.util.ArrayList;
 
 import org.apache.sysml.conf.ConfigurationManager;
@@ -33,7 +32,6 @@ import 
org.apache.sysml.hops.codegen.SpoofCompiler.IntegrationType;
 import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.lops.LopProperties;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.parser.DMLProgram;
 import org.apache.sysml.parser.DMLTranslator;
 import org.apache.sysml.parser.ForStatement;
@@ -60,7 +58,6 @@ import org.apache.sysml.runtime.instructions.cp.ScalarObject;
 public class ProgramRecompiler 
 {
        public static ArrayList<ProgramBlock> 
generatePartitialRuntimeProgram(Program rtprog, ArrayList<StatementBlock> sbs) 
-               throws LopsException, DMLRuntimeException, IOException, 
HopsException
        {
                ArrayList<ProgramBlock> ret = new ArrayList<>();
                DMLConfig config = ConfigurationManager.getDMLConfig();

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java
index ffad8ff..ba5fad0 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarObjectFactory.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysml.runtime.instructions.cp;
 
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.LiteralOp;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.util.UtilFunctions;
@@ -66,7 +65,7 @@ public abstract class ScalarObjectFactory
                }
        }
        
-       public static ScalarObject createScalarObject(ValueType vt, LiteralOp 
lit) throws HopsException {
+       public static ScalarObject createScalarObject(ValueType vt, LiteralOp 
lit) {
                switch( vt ) {
                        case DOUBLE:  return new 
DoubleObject(lit.getDoubleValue());
                        case INT:     return new IntObject(lit.getLongValue());

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java
index 14eadeb..f656216 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/cpfile/ParameterizedBuiltinCPFileInstruction.java
@@ -43,7 +43,6 @@ import org.apache.hadoop.mapred.Reporter;
 import org.apache.hadoop.mapred.TextInputFormat;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.controlprogram.caching.CacheException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 import org.apache.sysml.runtime.controlprogram.parfor.util.Cell;
@@ -224,13 +223,8 @@ public class ParameterizedBuiltinCPFileInstruction extends 
ParameterizedBuiltinC
                        if( rows==0 || cols ==0 ){
                                rows = Math.max(rows, 1);
                                cols = Math.max(cols, 1);
-                               try {
-                                       moNew.acquireModify(new 
MatrixBlock((int)rows, (int) cols, true));
-                                       moNew.release();
-                               } 
-                               catch (CacheException e) {
-                                       throw new DMLRuntimeException(e);
-                               }
+                               moNew.acquireModify(new MatrixBlock((int)rows, 
(int) cols, true));
+                               moNew.release();
                        }
                        
                        //create deep copy of metadata obj

Reply via email to