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();