YARN-8107. Give an informative message when incorrect format is used in ATSv2 
filter attributes. (Rohith Sharma K S via Haibo Chen)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/024d7c08
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/024d7c08
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/024d7c08

Branch: refs/heads/HDFS-7240
Commit: 024d7c08704e6a5fcc1f53a8f56a44c84c8d5fa0
Parents: b17dc9f
Author: Haibo Chen <haiboc...@apache.org>
Authored: Fri Apr 6 09:37:21 2018 -0700
Committer: Haibo Chen <haiboc...@apache.org>
Committed: Fri Apr 6 09:39:01 2018 -0700

----------------------------------------------------------------------
 .../reader/TimelineParserForCompareExpr.java    |  7 +++++-
 .../reader/TimelineParserForEqualityExpr.java   |  7 +++++-
 .../TestTimelineReaderWebServicesUtils.java     | 25 ++++++++++++++++++++
 3 files changed, 37 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/024d7c08/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForCompareExpr.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForCompareExpr.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForCompareExpr.java
index 1b020d9..a582956 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForCompareExpr.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForCompareExpr.java
@@ -282,7 +282,12 @@ abstract class TimelineParserForCompareExpr implements 
TimelineParser {
           parseValue(expr.substring(kvStartOffset, offset)));
     }
     if (filterList == null || filterList.getFilterList().isEmpty()) {
-      filterList = new TimelineFilterList(currentFilter);
+      if (currentFilter == null) {
+        throw new TimelineParseException(
+            "Invalid expression provided for " + exprName);
+      } else {
+        filterList = new TimelineFilterList(currentFilter);
+      }
     } else if (currentFilter != null) {
       filterList.addFilter(currentFilter);
     }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/024d7c08/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForEqualityExpr.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForEqualityExpr.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForEqualityExpr.java
index 7451713..2bdce38 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForEqualityExpr.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/main/java/org/apache/hadoop/yarn/server/timelineservice/reader/TimelineParserForEqualityExpr.java
@@ -325,7 +325,12 @@ abstract class TimelineParserForEqualityExpr implements 
TimelineParser {
       }
     }
     if (filterList == null || filterList.getFilterList().isEmpty()) {
-      filterList = new TimelineFilterList(currentFilter);
+      if (currentFilter == null) {
+        throw new TimelineParseException(
+            "Invalid expression provided for " + exprName);
+      } else {
+        filterList = new TimelineFilterList(currentFilter);
+      }
     } else if (currentFilter != null) {
       filterList.addFilter(currentFilter);
     }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/024d7c08/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/reader/TestTimelineReaderWebServicesUtils.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/reader/TestTimelineReaderWebServicesUtils.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/reader/TestTimelineReaderWebServicesUtils.java
index b2837c2..1455d17 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/reader/TestTimelineReaderWebServicesUtils.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice/src/test/java/org/apache/hadoop/yarn/server/timelineservice/reader/TestTimelineReaderWebServicesUtils.java
@@ -31,6 +31,7 @@ import 
org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineFilte
 import 
org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineKeyValueFilter;
 import 
org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelineKeyValuesFilter;
 import 
org.apache.hadoop.yarn.server.timelineservice.reader.filter.TimelinePrefixFilter;
+import org.junit.Assert;
 import org.junit.Test;
 
 import com.google.common.collect.Sets;
@@ -520,6 +521,30 @@ public class TestTimelineReaderWebServicesUtils {
     );
     verifyFilterList(expr, TimelineReaderWebServicesUtils.
         parseKVFilters(expr, false), expectedList);
+
+    expr = "abdeq";
+    try {
+      TimelineReaderWebServicesUtils.parseKVFilters(expr, false);
+      Assert.fail("Expression valuation should throw exception.");
+    } catch (TimelineParseException e) {
+      // expected: do nothing
+    }
+
+    expr = "abc gt 234 AND defeq";
+    try {
+      TimelineReaderWebServicesUtils.parseKVFilters(expr, false);
+      Assert.fail("Expression valuation should throw exception.");
+    } catch (TimelineParseException e) {
+      // expected: do nothing
+    }
+
+    expr = "((key11 ne 234 AND key12 eq val12) AND (key13eq OR key14 eq 
va14))";
+    try {
+      TimelineReaderWebServicesUtils.parseKVFilters(expr, false);
+      Assert.fail("Expression valuation should throw exception.");
+    } catch (TimelineParseException e) {
+      // expected: do nothing
+    }
   }
 
   @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to