Repository: kylin
Updated Branches:
  refs/heads/KYLIN-2624 12251b6cf -> 0206d87e0


final fix


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/0206d87e
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/0206d87e
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/0206d87e

Branch: refs/heads/KYLIN-2624
Commit: 0206d87e0d0cc58e86a0b16721055f65931c97d0
Parents: 12251b6
Author: Yang Li <liy...@apache.org>
Authored: Sat May 20 09:00:37 2017 +0800
Committer: Yang Li <liy...@apache.org>
Committed: Sat May 20 09:00:37 2017 +0800

----------------------------------------------------------------------
 examples/test_case_data/localmeta/UUID                   |  1 +
 .../apache/kylin/job/BaseTestDistributedScheduler.java   |  2 ++
 .../storage/hbase/util/ZookeeperDistributedLock.java     | 11 ++++++++---
 3 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/0206d87e/examples/test_case_data/localmeta/UUID
----------------------------------------------------------------------
diff --git a/examples/test_case_data/localmeta/UUID 
b/examples/test_case_data/localmeta/UUID
new file mode 100644
index 0000000..e3f5e6b
--- /dev/null
+++ b/examples/test_case_data/localmeta/UUID
@@ -0,0 +1 @@
+$3591078f-9401-481a-a233-e7755c1142d0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/kylin/blob/0206d87e/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java
----------------------------------------------------------------------
diff --git 
a/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java 
b/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java
index 6343dfa..1ea6507 100644
--- 
a/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java
+++ 
b/kylin-it/src/test/java/org/apache/kylin/job/BaseTestDistributedScheduler.java
@@ -113,6 +113,8 @@ public class BaseTestDistributedScheduler extends 
HBaseMetadataTestCase {
 
     @AfterClass
     public static void after() throws Exception {
+        jobLock1.purgeLocks("");
+        
         if (scheduler1 != null) {
             scheduler1.shutdown();
             scheduler1 = null;

http://git-wip-us.apache.org/repos/asf/kylin/blob/0206d87e/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java
----------------------------------------------------------------------
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java
index 05d3a5a..db65491 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperDistributedLock.java
@@ -102,7 +102,7 @@ public class ZookeeperDistributedLock implements 
DistributedLock, JobLock {
 
         public Factory(KylinConfig config) {
             this.curator = getZKClient(config);
-            this.zkPathBase = dropDoubleSlash("/kylin/" + 
KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix());
+            this.zkPathBase = fixSlash("/kylin/" + 
KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix());
         }
 
         @Override
@@ -284,10 +284,15 @@ public class ZookeeperDistributedLock implements 
DistributedLock, JobLock {
         if (!lockPath.startsWith(zkPathBase))
             lockPath = zkPathBase + (lockPath.startsWith("/") ? "" : "/") + 
lockPath;
         
-        return dropDoubleSlash(lockPath);
+        return fixSlash(lockPath);
     }
 
-    public static String dropDoubleSlash(String path) {
+    private static String fixSlash(String path) {
+        if (!path.startsWith("/"))
+            path = "/" + path;
+        if (path.endsWith("/"))
+            path = path.substring(0, path.length() - 1);
+        
         for (int n = Integer.MAX_VALUE; n > path.length();) {
             n = path.length();
             path = path.replace("//", "/");

Reply via email to