Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 22A18200BD8 for ; Wed, 7 Dec 2016 11:46:21 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 21420160B0A; Wed, 7 Dec 2016 10:46:21 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 434E8160AFD for ; Wed, 7 Dec 2016 11:46:20 +0100 (CET) Received: (qmail 84670 invoked by uid 500); 7 Dec 2016 10:46:14 -0000 Mailing-List: contact commits-help@carbondata.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@carbondata.incubator.apache.org Delivered-To: mailing list commits@carbondata.incubator.apache.org Received: (qmail 84584 invoked by uid 99); 7 Dec 2016 10:46:14 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Dec 2016 10:46:14 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id EB9121AB91F for ; Wed, 7 Dec 2016 10:46:13 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -6.219 X-Spam-Level: X-Spam-Status: No, score=-6.219 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.999] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id NSx7EYcW6kxq for ; Wed, 7 Dec 2016 10:46:09 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 42B4A5FDA9 for ; Wed, 7 Dec 2016 10:46:09 +0000 (UTC) Received: (qmail 83538 invoked by uid 99); 7 Dec 2016 10:46:08 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Dec 2016 10:46:08 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 60555DFF56; Wed, 7 Dec 2016 10:46:08 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: chenliang613@apache.org To: commits@carbondata.incubator.apache.org Date: Wed, 07 Dec 2016 10:46:08 -0000 Message-Id: <8d4e1551abb94eba9a3e51f7d9e12368@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/2] incubator-carbondata git commit: make timestamp formatter static archived-at: Wed, 07 Dec 2016 10:46:21 -0000 Repository: incubator-carbondata Updated Branches: refs/heads/master 47658b17d -> fa6b6e43e make timestamp formatter static make thread safe Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/dc57aec5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/dc57aec5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/dc57aec5 Branch: refs/heads/master Commit: dc57aec5f1d3d7158e93226af1415db49c7f2f1c Parents: 47658b1 Author: jackylk Authored: Wed Dec 7 15:14:13 2016 +0800 Committer: chenliang613 Committed: Wed Dec 7 18:44:54 2016 +0800 ---------------------------------------------------------------------- .../carbondata/core/util/DataTypeUtil.java | 55 ++++---------------- 1 file changed, 11 insertions(+), 44 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/dc57aec5/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java index 94a62b8..b97fd92 100644 --- a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java +++ b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java @@ -22,6 +22,7 @@ package org.apache.carbondata.core.util; import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; +import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; @@ -35,7 +36,6 @@ import org.apache.carbondata.core.carbon.metadata.schema.table.column.CarbonDime import org.apache.carbondata.core.carbon.metadata.schema.table.column.CarbonMeasure; import org.apache.carbondata.core.constants.CarbonCommonConstants; -import org.apache.commons.lang.math.NumberUtils; import org.apache.spark.unsafe.types.UTF8String; public final class DataTypeUtil { @@ -47,6 +47,15 @@ public final class DataTypeUtil { LogServiceFactory.getLogService(DataTypeUtil.class.getName()); private static final Map dataTypeDisplayNames; + private static final ThreadLocal formatter = new ThreadLocal() { + @Override + protected DateFormat initialValue() { + return new SimpleDateFormat( + CarbonProperties.getInstance().getProperty(CarbonCommonConstants.CARBON_TIMESTAMP_FORMAT, + CarbonCommonConstants.CARBON_TIMESTAMP_DEFAULT_FORMAT)); + } + }; + static { dataTypeDisplayNames = new HashMap(16); dataTypeDisplayNames.put(DataType.DATE.toString(), DataType.DATE.getName()); @@ -208,43 +217,6 @@ public final class DataTypeUtil { } /** - * Below method will be used to basically to know whether the input data is valid string of - * giving data type. If there is any non parseable string is present return false. - */ - public static boolean isValidData(String data, DataType actualDataType) { - if (null == data) { - return false; - } - try { - switch (actualDataType) { - case SHORT: - case INT: - case LONG: - case DOUBLE: - case DECIMAL: - return NumberUtils.isNumber(data); - case TIMESTAMP: - if (data.isEmpty()) { - return false; - } - SimpleDateFormat parser = new SimpleDateFormat(CarbonProperties.getInstance() - .getProperty(CarbonCommonConstants.CARBON_TIMESTAMP_FORMAT, - CarbonCommonConstants.CARBON_TIMESTAMP_DEFAULT_FORMAT)); - try { - parser.parse(data); - return true; - } catch (ParseException e) { - return false; - } - default: - return true; - } - } catch (NumberFormatException ex) { - return false; - } - } - - /** * Below method will be used to convert the data passed to its actual data * type * @@ -253,7 +225,6 @@ public final class DataTypeUtil { * @return actual data after conversion */ public static Object getDataBasedOnDataType(String data, DataType actualDataType) { - if (null == data || CarbonCommonConstants.MEMBER_DEFAULT_VAL.equals(data)) { return null; } @@ -283,12 +254,8 @@ public final class DataTypeUtil { if (data.isEmpty()) { return null; } - SimpleDateFormat parser = new SimpleDateFormat(CarbonProperties.getInstance() - .getProperty(CarbonCommonConstants.CARBON_TIMESTAMP_FORMAT, - CarbonCommonConstants.CARBON_TIMESTAMP_DEFAULT_FORMAT)); - Date dateToStr = null; try { - dateToStr = parser.parse(data); + Date dateToStr = formatter.get().parse(data); return dateToStr.getTime() * 1000; } catch (ParseException e) { LOGGER.error("Cannot convert" + data + " to Time/Long type value" + e.getMessage());