You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by de...@apache.org on 2016/02/03 13:10:41 UTC

[21/51] [abbrv] lens git commit: LENS-913: Seeing DateUtil exception in all cube tests

LENS-913: Seeing DateUtil exception in all cube tests


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

Branch: refs/heads/current-release-line
Commit: c73d5844b6e74eb3184b70aea283bf26b1bd267c
Parents: 71cf9ff
Author: Rajat Khandelwal <pr...@apache.org>
Authored: Fri Jan 8 17:23:19 2016 +0530
Committer: Rajat Khandelwal <ra...@gmail.com>
Committed: Fri Jan 8 17:23:19 2016 +0530

----------------------------------------------------------------------
 .../lens/cube/metadata/CubeFactTable.java       | 45 +++++++++++---------
 .../org/apache/lens/cube/metadata/DateUtil.java |  3 +-
 .../lens/cube/metadata/CubeFactTableTest.java   |  4 ++
 3 files changed, 30 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/c73d5844/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
index dd0adb7..b1fec8c 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
@@ -21,6 +21,7 @@ package org.apache.lens.cube.metadata;
 import java.util.*;
 
 import org.apache.lens.cube.metadata.UpdatePeriod.UpdatePeriodComparator;
+import org.apache.lens.server.api.error.LensException;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -28,7 +29,9 @@ import org.apache.hadoop.hive.ql.metadata.HiveException;
 import org.apache.hadoop.hive.ql.metadata.Table;
 
 import com.google.common.collect.Lists;
+import lombok.extern.slf4j.Slf4j;
 
+@Slf4j
 public class CubeFactTable extends AbstractCubeTable {
   private String cubeName;
   private final Map<String, Set<UpdatePeriod>> storageUpdatePeriods;
@@ -80,7 +83,7 @@ public class CubeFactTable extends AbstractCubeTable {
   }
 
   private static Map<String, Set<UpdatePeriod>> getUpdatePeriods(String name, Map<String, String> props) {
-    Map<String, Set<UpdatePeriod>> storageUpdatePeriods = new HashMap<String, Set<UpdatePeriod>>();
+    Map<String, Set<UpdatePeriod>> storageUpdatePeriods = new HashMap<>();
     String storagesStr = props.get(MetastoreUtil.getFactStorageListKey(name));
     if (!StringUtils.isBlank(storagesStr)) {
       String[] storages = storagesStr.split(",");
@@ -88,7 +91,7 @@ public class CubeFactTable extends AbstractCubeTable {
         String updatePeriodStr = props.get(MetastoreUtil.getFactUpdatePeriodKey(name, storage));
         if (StringUtils.isNotBlank(updatePeriodStr)) {
           String[] periods = updatePeriodStr.split(",");
-          Set<UpdatePeriod> updatePeriods = new TreeSet<UpdatePeriod>();
+          Set<UpdatePeriod> updatePeriods = new TreeSet<>();
           for (String period : periods) {
             updatePeriods.add(UpdatePeriod.valueOf(period));
           }
@@ -321,20 +324,28 @@ public class CubeFactTable extends AbstractCubeTable {
     getProperties().put(MetastoreConstants.FACT_AGGREGATED_PROPERTY, Boolean.toString(isAggregated));
   }
 
-  public Date getAbsoluteStartTime() {
+  public Date getDateFromProperty(String propKey, boolean relative, boolean start) {
+    String prop = getProperties().get(propKey);
     try {
-      return DateUtil.resolveAbsoluteDate(getProperties().get(MetastoreConstants.FACT_ABSOLUTE_START_TIME));
-    } catch (Exception e) {
-      return new Date(Long.MIN_VALUE);
+      if (StringUtils.isNotBlank(prop)) {
+        if (relative) {
+          return DateUtil.resolveRelativeDate(prop, now());
+        } else {
+          return DateUtil.resolveAbsoluteDate(prop);
+        }
+      }
+    } catch (LensException e) {
+      log.error("unable to parse {} {} date: {}", relative ? "relative" : "absolute", start ? "start" : "end", prop);
     }
+    return start ? DateUtil.MIN_DATE : DateUtil.MAX_DATE;
+  }
+
+  public Date getAbsoluteStartTime() {
+    return getDateFromProperty(MetastoreConstants.FACT_ABSOLUTE_START_TIME, false, true);
   }
 
   public Date getRelativeStartTime() {
-    try {
-      return DateUtil.resolveRelativeDate(getProperties().get(MetastoreConstants.FACT_RELATIVE_START_TIME), now());
-    } catch (Exception e) {
-      return new Date(Long.MIN_VALUE);
-    }
+    return getDateFromProperty(MetastoreConstants.FACT_RELATIVE_START_TIME, true, true);
   }
 
   public Date getStartTime() {
@@ -342,19 +353,11 @@ public class CubeFactTable extends AbstractCubeTable {
   }
 
   public Date getAbsoluteEndTime() {
-    try {
-      return DateUtil.resolveAbsoluteDate(getProperties().get(MetastoreConstants.FACT_ABSOLUTE_END_TIME));
-    } catch (Exception e) {
-      return new Date(Long.MAX_VALUE);
-    }
+    return getDateFromProperty(MetastoreConstants.FACT_ABSOLUTE_END_TIME, false, false);
   }
 
   public Date getRelativeEndTime() {
-    try {
-      return DateUtil.resolveRelativeDate(getProperties().get(MetastoreConstants.FACT_RELATIVE_END_TIME), now());
-    } catch (Exception e) {
-      return new Date(Long.MAX_VALUE);
-    }
+    return getDateFromProperty(MetastoreConstants.FACT_RELATIVE_END_TIME, true, false);
   }
 
   public Date getEndTime() {

http://git-wip-us.apache.org/repos/asf/lens/blob/c73d5844/lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java
index b76c567..b82cd95 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java
@@ -54,7 +54,8 @@ public final class DateUtil {
    * <NUM>UNIT or Hardcoded dates in DD-MM-YYYY hh:mm:ss,sss
    */
   public static final String UNIT;
-
+  public static final Date MAX_DATE = new Date(Long.MAX_VALUE);
+  public static final Date MIN_DATE = new Date(Long.MIN_VALUE);
   static {
     StringBuilder sb = new StringBuilder();
     String sep = "";

http://git-wip-us.apache.org/repos/asf/lens/blob/c73d5844/lens-cube/src/test/java/org/apache/lens/cube/metadata/CubeFactTableTest.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/test/java/org/apache/lens/cube/metadata/CubeFactTableTest.java b/lens-cube/src/test/java/org/apache/lens/cube/metadata/CubeFactTableTest.java
index 25eaaef..0935509 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/metadata/CubeFactTableTest.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/metadata/CubeFactTableTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.lens.cube.metadata;
 
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertEquals;
@@ -66,6 +68,8 @@ public class CubeFactTableTest {
 
     when(cubeFactTable.getProperties()).thenReturn(properties);
 
+    when(cubeFactTable.getDateFromProperty(anyString(), anyBoolean(), anyBoolean())).thenCallRealMethod();
+
     when(cubeFactTable.getRelativeStartTime()).thenCallRealMethod();
     when(cubeFactTable.getAbsoluteStartTime()).thenCallRealMethod();