You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by de...@apache.org on 2016/09/23 19:11:39 UTC
incubator-systemml git commit: [SYSTEMML-621] Remove redundant nested
error messages
Repository: incubator-systemml
Updated Branches:
refs/heads/master b127f09cb -> 8dda69c82
[SYSTEMML-621] Remove redundant nested error messages
Remove some nested error messages for read, matrix, and rand statements.
Closes #255.
Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/8dda69c8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/8dda69c8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/8dda69c8
Branch: refs/heads/master
Commit: 8dda69c82cd441c0f5e6430120d387b955545714
Parents: b127f09
Author: Deron Eriksson <de...@us.ibm.com>
Authored: Fri Sep 23 12:07:58 2016 -0700
Committer: Deron Eriksson <de...@us.ibm.com>
Committed: Fri Sep 23 12:07:58 2016 -0700
----------------------------------------------------------------------
.../org/apache/sysml/parser/DataExpression.java | 56 ++++++++++++--------
.../parser/common/CommonSyntacticValidator.java | 2 +-
2 files changed, 35 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/8dda69c8/src/main/java/org/apache/sysml/parser/DataExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/DataExpression.java b/src/main/java/org/apache/sysml/parser/DataExpression.java
index 96089f0..7bd1c22 100644
--- a/src/main/java/org/apache/sysml/parser/DataExpression.java
+++ b/src/main/java/org/apache/sysml/parser/DataExpression.java
@@ -29,17 +29,18 @@ import java.util.Map.Entry;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.wink.json4j.JSONArray;
-import org.apache.wink.json4j.JSONObject;
import org.apache.sysml.conf.CompilerConfig.ConfigType;
import org.apache.sysml.conf.ConfigurationManager;
import org.apache.sysml.hops.DataGenOp;
import org.apache.sysml.parser.LanguageException.LanguageErrorCodes;
+import org.apache.sysml.parser.common.CustomErrorListener;
import org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer;
import org.apache.sysml.runtime.util.LocalFileUtils;
import org.apache.sysml.runtime.util.MapReduceTool;
import org.apache.sysml.runtime.util.UtilFunctions;
import org.apache.sysml.utils.JSONHelper;
+import org.apache.wink.json4j.JSONArray;
+import org.apache.wink.json4j.JSONObject;
public class DataExpression extends DataIdentifier
@@ -133,7 +134,7 @@ public class DataExpression extends DataIdentifier
public static DataExpression getDataExpression(String functionName, ArrayList<ParameterExpression> passedParamExprs,
- String filename, int blp, int bcp, int elp, int ecp) throws LanguageException
+ String filename, int blp, int bcp, int elp, int ecp, CustomErrorListener errorListener) throws LanguageException
{
if (functionName == null || passedParamExprs == null)
return null;
@@ -159,13 +160,15 @@ public class DataExpression extends DataIdentifier
// validate the filename is the first parameter
if (passedParamExprs.size() < 1){
- dataExpr.raiseValidateError("read method must have at least filename parameter", false);
+ errorListener.validationError(blp, bcp, "read method must have at least filename parameter");
+ return null;
}
ParameterExpression pexpr = (passedParamExprs.size() == 0) ? null : passedParamExprs.get(0);
if ( (pexpr != null) && (!(pexpr.getName() == null) || (pexpr.getName() != null && pexpr.getName().equalsIgnoreCase(DataExpression.IO_FILENAME)))){
- dataExpr.raiseValidateError("first parameter to read statement must be filename");
+ errorListener.validationError(blp, bcp, "first parameter to read statement must be filename");
+ return null;
} else if( pexpr != null ){
dataExpr.addVarParam(DataExpression.IO_FILENAME, pexpr.getExpr());
}
@@ -176,7 +179,8 @@ public class DataExpression extends DataIdentifier
Expression currExpr = passedParamExprs.get(i).getExpr();
if (dataExpr.getVarParam(currName) != null){
- dataExpr.raiseValidateError("attempted to add IOStatement parameter " + currName + " more than once");
+ errorListener.validationError(blp, bcp, "attempted to add IOStatement parameter " + currName + " more than once");
+ return null;
}
// verify parameter names for read function
boolean isValidName = false;
@@ -185,7 +189,8 @@ public class DataExpression extends DataIdentifier
isValidName = true;
}
if (!isValidName){
- dataExpr.raiseValidateError("attempted to add invalid read statement parameter " + currName);
+ errorListener.validationError(blp, bcp, "attempted to add invalid read statement parameter " + currName);
+ return null;
}
dataExpr.addVarParam(currName, currExpr);
}
@@ -201,7 +206,8 @@ public class DataExpression extends DataIdentifier
String pname = currExpr.getName();
Expression pexpr = currExpr.getExpr();
if (pname == null){
- dataExpr.raiseValidateError("for Rand Statement all arguments must be named parameters");
+ errorListener.validationError(blp, bcp, "for rand statement, all arguments must be named parameters");
+ return null;
}
dataExpr.addRandExprParam(pname, pexpr);
}
@@ -223,16 +229,21 @@ public class DataExpression extends DataIdentifier
// check whether named or unnamed parameters are used
if (passedParamExprs.size() < 3){
- dataExpr.raiseValidateError("for matrix statement, must specify at least 3 arguments (in order): data, rows, cols");
+ errorListener.validationError(blp, bcp, "for matrix statement, must specify at least 3 arguments: data, rows, cols");
+ return null;
}
if (unnamedParamCount > 1){
- if (namedParamCount > 0)
- dataExpr.raiseValidateError("for matrix statement, cannot mix named and unnamed parameters");
+ if (namedParamCount > 0) {
+ errorListener.validationError(blp, bcp, "for matrix statement, cannot mix named and unnamed parameters");
+ return null;
+ }
- if (unnamedParamCount < 3)
- dataExpr.raiseValidateError("for matrix statement, must specify at least 3 arguments (in order): data, rows, cols");
+ if (unnamedParamCount < 3) {
+ errorListener.validationError(blp, bcp, "for matrix statement, must specify at least 3 arguments: data, rows, cols");
+ return null;
+ }
// assume: data, rows, cols, [byRow], [dimNames]
@@ -246,31 +257,32 @@ public class DataExpression extends DataIdentifier
if (unnamedParamCount == 5)
dataExpr.addMatrixExprParam(DataExpression.RAND_DIMNAMES,passedParamExprs.get(4).getExpr());
- if (unnamedParamCount > 5)
- dataExpr.raiseValidateError("for matrix statement, at most 5 arguments supported (in order): data, rows, cols, byrow, dimname");
-
+ if (unnamedParamCount > 5) {
+ errorListener.validationError(blp, bcp, "for matrix statement, at most 5 arguments supported: data, rows, cols, byrow, dimname");
+ return null;
+ }
} else {
// handle first parameter, which is data and may be unnamed
ParameterExpression firstParam = passedParamExprs.get(0);
if (firstParam.getName() != null && !firstParam.getName().equals(DataExpression.RAND_DATA)){
- // throw exception -- must be filename as first parameter
- dataExpr.raiseValidateError("matrix method must have data parameter as first parameter or unnamed parameter");
+ errorListener.validationError(blp, bcp, "matrix method must have data parameter as first parameter or unnamed parameter");
+ return null;
} else {
dataExpr.addMatrixExprParam(DataExpression.RAND_DATA, passedParamExprs.get(0).getExpr());
}
for (int i=1; i<passedParamExprs.size(); i++){
if (passedParamExprs.get(i).getName() == null){
- // throw exception -- cannot mix named and unnamed parameters
- dataExpr.raiseValidateError("for matrix statement, cannot mix named and unnamed parameters, only data parameter can be unnammed");
+ errorListener.validationError(blp, bcp, "for matrix statement, cannot mix named and unnamed parameters, only data parameter can be unnammed");
+ return null;
} else {
- dataExpr.addMatrixExprParam(passedParamExprs.get(i).getName(), passedParamExprs.get(i).getExpr());
+ dataExpr.addMatrixExprParam(passedParamExprs.get(i).getName(), passedParamExprs.get(i).getExpr());
}
}
}
dataExpr.setMatrixDefault();
- } // else if (functionName.equals("matrix")){
+ }
if (dataExpr != null) {
dataExpr.setAllPositions(filename, blp, bcp, elp, ecp);
http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/8dda69c8/src/main/java/org/apache/sysml/parser/common/CommonSyntacticValidator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/common/CommonSyntacticValidator.java b/src/main/java/org/apache/sysml/parser/common/CommonSyntacticValidator.java
index 19e344e..995937f 100644
--- a/src/main/java/org/apache/sysml/parser/common/CommonSyntacticValidator.java
+++ b/src/main/java/org/apache/sysml/parser/common/CommonSyntacticValidator.java
@@ -646,7 +646,7 @@ public abstract class CommonSyntacticValidator {
}
// built-in read, rand ...
- DataExpression dbife = DataExpression.getDataExpression(functionName, paramExpressions, fileName, line, col, line, col);
+ DataExpression dbife = DataExpression.getDataExpression(functionName, paramExpressions, fileName, line, col, line, col, errorListener);
if (dbife != null){
f.execute(dbife);
return true;