Till Westmann has submitted this change and it was merged.

Change subject: fix NPE in ValidateUtil
......................................................................


fix NPE in ValidateUtil

Change-Id: I8f623441a3f5b72a9a0621d32d9d1a6aa5567d66
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1139
Reviewed-by: Yingyi Bu <[email protected]>
Sonar-Qube: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Integration-Tests: Jenkins <[email protected]>
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
M asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
M asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
4 files changed, 15 insertions(+), 11 deletions(-)

Approvals:
  Yingyi Bu: Looks good to me, approved
  Jenkins: Verified; No violations found; Verified



diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
index 13153c2..065b1b0 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
@@ -107,6 +107,10 @@
                     keySourceIndicators);
             for (int fidx = 0; fidx < partitioningExprTypes.size(); ++fidx) {
                 IAType fieldType = partitioningExprTypes.get(fidx);
+                if (fieldType == null) {
+                    throw new AsterixException(
+                            "Type not found for partitioning key " + 
partitioningExprs.get(fidx));
+                }
                 switch (fieldType.getTypeTag()) {
                     case INT8:
                     case INT16:
@@ -125,10 +129,10 @@
                         break;
                     case UNION:
                         throw new AsterixException(
-                                "The partitioning key \"" + 
partitioningExprs.get(fidx) + "\" cannot be nullable");
+                                "The partitioning key " + 
partitioningExprs.get(fidx) + " cannot be nullable");
                     default:
-                        throw new AsterixException("The partitioning key \"" + 
partitioningExprs.get(fidx)
-                                + "\" cannot be of type " + 
fieldType.getTypeTag() + ".");
+                        throw new AsterixException("The partitioning key " + 
partitioningExprs.get(fidx)
+                                + " cannot be of type " + 
fieldType.getTypeTag() + ".");
                 }
             }
         }
diff --git a/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml 
b/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
index 8f35293..251e2e4 100644
--- a/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
+++ b/asterixdb/asterix-app/src/test/resources/metadata/testsuite.xml
@@ -412,13 +412,13 @@
     <test-case FilePath="exception">
       <compilation-unit name="issue_255_create_dataset_error_1">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>java.lang.NullPointerException</expected-error>
+        <expected-error>Type not found for partitioning key 
[name]</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_255_create_dataset_error_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Error: The partitioning key "[open-type]" cannot be of 
type RECORD.</expected-error>
+        <expected-error>Error: The partitioning key [open-type] cannot be of 
type RECORD.</expected-error>
       </compilation-unit>
     </test-case>
     <!-- Feed datasets are not supported anymore
@@ -432,13 +432,13 @@
     <test-case FilePath="exception">
       <compilation-unit name="issue_266_create_dataset_error_1">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>java.lang.NullPointerException</expected-error>
+        <expected-error>Type not found for partitioning key 
[point]</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
       <compilation-unit name="issue_266_create_dataset_error_2">
         <output-dir compare="Text">none</output-dir>
-        <expected-error>Error: The partitioning key "[id]" cannot be 
nullable</expected-error>
+        <expected-error>Error: The partitioning key [id] cannot be 
nullable</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="exception">
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml 
b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
index 9e4a3c4..6c65a62 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -3179,7 +3179,7 @@
     <test-case FilePath="misc">
       <compilation-unit name="partition-by-nonexistent-field"> <!-- 
Seriously?? 3 expected errors -->
         <output-dir compare="Text">partition-by-nonexistent-field</output-dir>
-        <expected-error>java.lang.NullPointerException</expected-error>
+        <expected-error>Type not found for partitioning key 
[id]</expected-error>
         
<expected-error>org.apache.hyracks.algebricks.common.exceptions.AlgebricksException:
 Cannot find dataset</expected-error>
         
<expected-error>org.apache.hyracks.algebricks.common.exceptions.AlgebricksException:
 Could not find dataset</expected-error>
       </compilation-unit>
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml 
b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index a074df9..a89808e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -3034,9 +3034,9 @@
     <test-case FilePath="misc">
       <compilation-unit name="partition-by-nonexistent-field">
         <output-dir compare="Text">partition-by-nonexistent-field</output-dir>
-        <expected-error>java.lang.NullPointerException</expected-error>
-        <expected-error>Cannot find dataset</expected-error>
-        <expected-error>Cannot find dataset testds in dataverse test nor an 
alias with name testds</expected-error>
+        <expected-error>Type not found for partitioning key 
[id]</expected-error>
+        <expected-error>Cannot find dataset testds in dataverse 
test</expected-error>
+        <expected-error>Cannot find dataset testds in dataverse test nor an 
alias with name testds!</expected-error>
       </compilation-unit>
     </test-case>
     <test-case FilePath="misc">

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1139
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8f623441a3f5b72a9a0621d32d9d1a6aa5567d66
Gerrit-PatchSet: 6
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Till Westmann <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Till Westmann <[email protected]>
Gerrit-Reviewer: Yingyi Bu <[email protected]>

Reply via email to