You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2015/07/23 07:53:58 UTC
incubator-kylin git commit: KYLIN-875 Fix ClassNotFoundException in
ResourceStore
Repository: incubator-kylin
Updated Branches:
refs/heads/0.8 3823545a0 -> 715ebff97
KYLIN-875 Fix ClassNotFoundException in ResourceStore
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/715ebff9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/715ebff9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/715ebff9
Branch: refs/heads/0.8
Commit: 715ebff97a31ecfbbff193c02998d3e5fd1661e6
Parents: 3823545
Author: Li, Yang <ya...@ebay.com>
Authored: Thu Jul 23 13:53:49 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Thu Jul 23 13:53:49 2015 +0800
----------------------------------------------------------------------
.../kylin/common/persistence/ResourceStore.java | 26 +++++++++++---------
1 file changed, 14 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/715ebff9/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java b/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
index a89d30f..3bbcb0a 100644
--- a/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
+++ b/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
@@ -58,26 +58,28 @@ abstract public class ResourceStore {
public static final String CUBE_STATISTICS_ROOT = "/cube_statistics";
- private static ConcurrentHashMap<KylinConfig, ResourceStore> CACHE = new ConcurrentHashMap<KylinConfig, ResourceStore>();
+ private static final ConcurrentHashMap<KylinConfig, ResourceStore> CACHE = new ConcurrentHashMap<KylinConfig, ResourceStore>();
- public static final ArrayList<Class<? extends ResourceStore>> knownImpl = new ArrayList<Class<? extends ResourceStore>>();
-
- static {
- knownImpl.add(FileResourceStore.class);
- try {
- knownImpl.add(ClassUtil.forName("org.apache.kylin.storage.hbase.HBaseResourceStore", ResourceStore.class));
- } catch (ClassNotFoundException e) {
- logger.warn(e.toString());
+ private static final ArrayList<Class<? extends ResourceStore>> knownImpl = new ArrayList<Class<? extends ResourceStore>>();
+
+ private static ArrayList<Class<? extends ResourceStore>> getKnownImpl() {
+ if (knownImpl.isEmpty()) {
+ knownImpl.add(FileResourceStore.class);
+ try {
+ knownImpl.add(ClassUtil.forName("org.apache.kylin.storage.hbase.HBaseResourceStore", ResourceStore.class));
+ } catch (Throwable e) {
+ logger.warn("Failed to load ResourceStore impl class", e);
+ }
}
+ return knownImpl;
}
-
+
public static ResourceStore getStore(KylinConfig kylinConfig) {
ResourceStore r = CACHE.get(kylinConfig);
List<Throwable> es = new ArrayList<Throwable>();
if (r == null) {
logger.info("Using metadata url " + kylinConfig.getMetadataUrl() + " for resource store");
- for (Class<? extends ResourceStore> cls : knownImpl) {
-
+ for (Class<? extends ResourceStore> cls : getKnownImpl()) {
try {
r = cls.getConstructor(KylinConfig.class).newInstance(kylinConfig);
} catch (Exception e) {