You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by jd...@apache.org on 2015/03/22 11:08:35 UTC

[1/2] incubator-lens git commit: LENS-427 : NPE in CSVSerde (Sushil Mohanty) via jdhok

Repository: incubator-lens
Updated Branches:
  refs/heads/master 954ee08c7 -> 04217628a


LENS-427 : NPE in CSVSerde (Sushil Mohanty) via jdhok


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

Branch: refs/heads/master
Commit: c9edc68d85b37a33467d0010ff68dcccc6a8b101
Parents: 954ee08
Author: Sushil Mohanty <su...@inmobi.com>
Authored: Sun Mar 22 15:31:41 2015 +0530
Committer: jdhok <ja...@inmobi.com>
Committed: Sun Mar 22 15:31:41 2015 +0530

----------------------------------------------------------------------
 .../src/main/java/org/apache/lens/lib/query/CSVSerde.java | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/c9edc68d/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java
----------------------------------------------------------------------
diff --git a/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java b/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java
index 3b8d5d2..9831456 100644
--- a/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java
+++ b/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java
@@ -151,9 +151,12 @@ public final class CSVSerde extends AbstractSerDe {
   @Override
   public void initialize(final Configuration conf, final Properties tbl) throws SerDeException {
     List<String> columnNames = new ArrayList<String>();
-    String[] names = tbl.getProperty(LIST_COLUMNS).split("(?!\"),(?!\")");
-    for (String name : names) {
-      columnNames.add(StringEscapeUtils.unescapeCsv(name));
+
+    if (tbl.getProperty(LIST_COLUMNS) != null) {
+      String[] names = tbl.getProperty(LIST_COLUMNS).split("(?!\"),(?!\")");
+      for (String name : names) {
+        columnNames.add(StringEscapeUtils.unescapeCsv(name));
+      }
     }
     String columnTypeProperty = tbl.getProperty(LIST_COLUMN_TYPES);
     columnTypes = TypeInfoUtils.getTypeInfosFromTypeString(columnTypeProperty);
@@ -472,6 +475,7 @@ public final class CSVSerde extends AbstractSerDe {
     return Text.class;
   }
 
+  @Override
   public SerDeStats getSerDeStats() {
     return null;
   }


[2/2] incubator-lens git commit: LENS-429 : Examples failing with parallel estimate (Amareshwari via jdhok)

Posted by jd...@apache.org.
LENS-429 : Examples failing with parallel estimate (Amareshwari via jdhok)


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

Branch: refs/heads/master
Commit: 04217628ad3349d3397e7a7ac13929d5797d0493
Parents: c9edc68
Author: Amareshwari Sriramadasu <am...@apache.org>
Authored: Sun Mar 22 15:36:05 2015 +0530
Committer: jdhok <ja...@inmobi.com>
Committed: Sun Mar 22 15:36:05 2015 +0530

----------------------------------------------------------------------
 .../apache/lens/cube/metadata/CubeColumn.java   | 31 +++++++++++++-------
 .../org/apache/lens/cube/parse/DateUtil.java    | 14 +++++++--
 2 files changed, 32 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/04217628/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
index 72a8bce..3618733 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
@@ -18,6 +18,7 @@
  */
 package org.apache.lens.cube.metadata;
 
+import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Map;
@@ -30,7 +31,14 @@ public abstract class CubeColumn implements Named {
   private final Double cost;
   private final String description;
   private final String displayString;
-  static SimpleDateFormat columnTimeFormat = new SimpleDateFormat("yyyy-MM-dd-HH");
+
+  static final ThreadLocal<DateFormat> COLUMN_TIME_FORMAT =
+    new ThreadLocal<DateFormat>() {
+      @Override
+      protected SimpleDateFormat initialValue() {
+        return new SimpleDateFormat("yyyy-MM-dd-HH");
+      }
+    };
 
   public CubeColumn(String name, String description, String displayString, Date startTime, Date endTime, Double cost) {
     assert (name != null);
@@ -46,7 +54,7 @@ public abstract class CubeColumn implements Named {
     String timeKey = props.get(propKey);
     if (timeKey != null) {
       try {
-        return columnTimeFormat.parse(timeKey);
+        return COLUMN_TIME_FORMAT.get().parse(timeKey);
       } catch (Exception e) {
         // ignore and return null
       }
@@ -128,11 +136,11 @@ public abstract class CubeColumn implements Named {
     }
     if (startTime != null) {
       builder.append("#start:");
-      builder.append(columnTimeFormat.format(startTime));
+      builder.append(COLUMN_TIME_FORMAT.get().format(startTime));
     }
     if (endTime != null) {
       builder.append("#end:");
-      builder.append(columnTimeFormat.format(endTime));
+      builder.append(COLUMN_TIME_FORMAT.get().format(endTime));
     }
     if (cost != null) {
       builder.append(":");
@@ -149,8 +157,9 @@ public abstract class CubeColumn implements Named {
     result = prime * result + ((getDescription() == null) ? 0 : getDescription().toLowerCase().hashCode());
     result = prime * result + ((getDisplayString() == null) ? 0 : getDisplayString().toLowerCase().hashCode());
     result = prime * result + ((getName() == null) ? 0 : getName().toLowerCase().hashCode());
-    result = prime * result + ((getStartTime() == null) ? 0 : columnTimeFormat.format(getStartTime()).hashCode());
-    result = prime * result + ((getEndTime() == null) ? 0 : columnTimeFormat.format(getEndTime()).hashCode());
+    result = prime * result + ((getStartTime() == null) ? 0 : COLUMN_TIME_FORMAT.get().format(
+      getStartTime()).hashCode());
+    result = prime * result + ((getEndTime() == null) ? 0 : COLUMN_TIME_FORMAT.get().format(getEndTime()).hashCode());
     result = prime * result + ((getCost() == null) ? 0 : getCost().hashCode());
     return result;
   }
@@ -197,7 +206,8 @@ public abstract class CubeColumn implements Named {
       }
     } else if (other.getStartTime() == null) {
       return false;
-    } else if (!columnTimeFormat.format(this.getStartTime()).equals(columnTimeFormat.format(other.getStartTime()))) {
+    } else if (!COLUMN_TIME_FORMAT.get().format(this.getStartTime()).equals(COLUMN_TIME_FORMAT.get().format(
+      other.getStartTime()))) {
       return false;
     }
 
@@ -207,7 +217,8 @@ public abstract class CubeColumn implements Named {
       }
     } else if (other.getEndTime() == null) {
       return false;
-    } else if (!columnTimeFormat.format(this.getEndTime()).equals(columnTimeFormat.format(other.getEndTime()))) {
+    } else if (!COLUMN_TIME_FORMAT.get().format(this.getEndTime()).equals(COLUMN_TIME_FORMAT.get().format(
+      other.getEndTime()))) {
       return false;
     }
 
@@ -229,10 +240,10 @@ public abstract class CubeColumn implements Named {
       props.put(MetastoreUtil.getCubeColDisplayKey(getName()), displayString);
     }
     if (startTime != null) {
-      props.put(MetastoreUtil.getCubeColStartTimePropertyKey(getName()), columnTimeFormat.format(startTime));
+      props.put(MetastoreUtil.getCubeColStartTimePropertyKey(getName()), COLUMN_TIME_FORMAT.get().format(startTime));
     }
     if (endTime != null) {
-      props.put(MetastoreUtil.getCubeColEndTimePropertyKey(getName()), columnTimeFormat.format(endTime));
+      props.put(MetastoreUtil.getCubeColEndTimePropertyKey(getName()), COLUMN_TIME_FORMAT.get().format(endTime));
     }
     if (cost != null) {
       props.put(MetastoreUtil.getCubeColCostPropertyKey(getName()), cost.toString());

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/04217628/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
index 6814ae8..1094e44 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
@@ -18,6 +18,7 @@
  */
 package org.apache.lens.cube.parse;
 
+import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
@@ -72,10 +73,17 @@ public final class DateUtil {
   public static final String MINUTE_FMT = HOUR_FMT + ":[0-9]{2}";
   public static final String SECOND_FMT = MINUTE_FMT + ":[0-9]{2}";
   public static final String ABSDATE_FMT = "yyyy-MM-dd-HH:mm:ss,SSS";
-  public static final SimpleDateFormat ABSDATE_PARSER = new SimpleDateFormat(ABSDATE_FMT);
+
+  public static final ThreadLocal<DateFormat> ABSDATE_PARSER =
+    new ThreadLocal<DateFormat>() {
+      @Override
+      protected SimpleDateFormat initialValue() {
+        return new SimpleDateFormat(ABSDATE_FMT);
+      }
+    };
 
   public static String formatDate(Date dt) {
-    return ABSDATE_PARSER.format(dt);
+    return ABSDATE_PARSER.get().format(dt);
   }
 
   public static String getAbsDateFormatString(String str) {
@@ -102,7 +110,7 @@ public final class DateUtil {
       return resolveRelativeDate(str, now);
     } else {
       try {
-        return ABSDATE_PARSER.parse(getAbsDateFormatString(str));
+        return ABSDATE_PARSER.get().parse(getAbsDateFormatString(str));
       } catch (ParseException e) {
         LOG.error("Invalid date format. expected only " + ABSDATE_FMT + " date provided:" + str, e);
         throw new SemanticException(e, ErrorMsg.WRONG_TIME_RANGE_FORMAT, ABSDATE_FMT, str);