From 9a22c43e9b4bf604a3d273d390efd039fd4598fc Mon Sep 17 00:00:00 2001 From: dengfangyuan Date: Fri, 15 Dec 2017 13:28:55 +0800 Subject: [PATCH] add try catch in GlobalDictionaryBuilder to release lock --- .../main/java/org/apache/kylin/dict/GlobalDictionaryBuilder.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/GlobalDictionaryBuilder.java b/core-dictionary/src/main/java/org/apache/kylin/dict/GlobalDictionaryBuilder.java index 8250fedbe..571754270 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/GlobalDictionaryBuilder.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/GlobalDictionaryBuilder.java @@ -53,7 +53,13 @@ public class GlobalDictionaryBuilder implements IDictionaryBuilder { hdfsDir = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory(); } String baseDir = hdfsDir + "resources/GlobalDict" + dictInfo.getResourceDir() + "/"; - this.builder = new AppendTrieDictionaryBuilder(baseDir, maxEntriesPerSlice, true); + + try { + this.builder = new AppendTrieDictionaryBuilder(baseDir, maxEntriesPerSlice, true); + } catch (Throwable e) { + lock.unlock(getLockPath(sourceColumn)); + throw new RuntimeException(String.format("Failed to create global dictionary on %s ", sourceColumn), e); + } this.baseId = baseId; } -- 2.14.3 (Apple Git-98)