You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by GitBox <gi...@apache.org> on 2018/08/14 09:48:40 UTC

[GitHub] shaofengshi closed pull request #197: KYLIN-3317, replace UUID.randomUUID with new UUID(ThreadLocalRandom.current().nextLong(), ThreadLocalRandom.current().nextLong())

shaofengshi closed pull request #197: KYLIN-3317, replace UUID.randomUUID with new UUID(ThreadLocalRandom.current().nextLong(), ThreadLocalRandom.current().nextLong())
URL: https://github.com/apache/kylin/pull/197
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/core-common/src/main/java/org/apache/kylin/common/QueryContext.java b/core-common/src/main/java/org/apache/kylin/common/QueryContext.java
index 66b9871344..ef288c7d6d 100644
--- a/core-common/src/main/java/org/apache/kylin/common/QueryContext.java
+++ b/core-common/src/main/java/org/apache/kylin/common/QueryContext.java
@@ -22,11 +22,11 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.kylin.common.exceptions.KylinTimeoutException;
+import org.apache.kylin.common.util.RandomUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -67,7 +67,7 @@
     }
 
     QueryContext(long startMills) {
-        queryId = UUID.randomUUID().toString();
+        queryId = RandomUtil.randomUUID().toString();
         queryStartMillis = startMills;
     }
 
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 a71db459bd..36bb595489 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
@@ -32,7 +32,6 @@
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.NavigableSet;
-import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -42,6 +41,7 @@
 import org.apache.kylin.common.StorageURL;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.OptionsHelper;
+import org.apache.kylin.common.util.RandomUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -147,7 +147,7 @@ final public KylinConfig getConfig() {
     abstract protected NavigableSet<String> listResourcesImpl(String folderPath, boolean recursive) throws IOException;
 
     protected String createMetaStoreUUID() throws IOException {
-        return UUID.randomUUID().toString();
+        return RandomUtil.randomUUID().toString();
     }
 
     public String getMetaStoreUUID() throws IOException {
diff --git a/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java b/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
index 39c29955ef..a4877f2e28 100644
--- a/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
+++ b/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
@@ -21,10 +21,10 @@
 import java.io.Serializable;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.UUID;
 
 import org.apache.commons.lang.time.FastDateFormat;
 import org.apache.kylin.common.KylinVersion;
+import org.apache.kylin.common.util.RandomUtil;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
@@ -99,7 +99,7 @@ public void setLastModified(long lastModified) {
     }
 
     public void updateRandomUuid() {
-        setUuid(UUID.randomUUID().toString());
+        setUuid(RandomUtil.randomUUID().toString());
     }
     
     public boolean isCachedAndShared() {
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/RandomUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/RandomUtil.java
new file mode 100644
index 0000000000..00be8dd4c3
--- /dev/null
+++ b/core-common/src/main/java/org/apache/kylin/common/util/RandomUtil.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.kylin.common.util;
+
+import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
+
+public class RandomUtil {
+    public static UUID randomUUID() {
+        return new UUID(ThreadLocalRandom.current().nextLong(), ThreadLocalRandom.current().nextLong());
+    }
+}
diff --git a/core-common/src/test/java/org/apache/kylin/common/util/RandomUtilTest.java b/core-common/src/test/java/org/apache/kylin/common/util/RandomUtilTest.java
new file mode 100644
index 0000000000..c98fa83c9e
--- /dev/null
+++ b/core-common/src/test/java/org/apache/kylin/common/util/RandomUtilTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.kylin.common.util;
+
+import java.util.UUID;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class RandomUtilTest {
+    @Test
+    public void testRandomUUID() {
+        Assert.assertEquals(RandomUtil.randomUUID().toString().length(), UUID.randomUUID().toString().length());
+        Assert.assertNotEquals(RandomUtil.randomUUID().toString(), RandomUtil.randomUUID().toString());
+    }
+}
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
index d6fca79249..ef30237daf 100755
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
@@ -28,11 +28,9 @@
 import java.util.Map;
 import java.util.Random;
 import java.util.Set;
-import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import com.google.common.collect.Maps;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
@@ -43,6 +41,7 @@
 import org.apache.kylin.common.util.AutoReadWriteLock.AutoLock;
 import org.apache.kylin.common.util.Dictionary;
 import org.apache.kylin.common.util.Pair;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.SnapshotTableDesc;
@@ -82,6 +81,7 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 
 /**
@@ -835,7 +835,7 @@ private CubeSegment newSegment(CubeInstance cube, TSRange tsRange, SegmentRange
             DataModelDesc modelDesc = cube.getModel();
 
             CubeSegment segment = new CubeSegment();
-            segment.setUuid(UUID.randomUUID().toString());
+            segment.setUuid(RandomUtil.randomUUID().toString());
             segment.setName(CubeSegment.makeSegmentName(tsRange, segRange, modelDesc));
             segment.setCreateTimeUTC(System.currentTimeMillis());
             segment.setCubeInstance(cube);
diff --git a/core-cube/src/test/java/org/apache/kylin/cube/CubeInstanceTest.java b/core-cube/src/test/java/org/apache/kylin/cube/CubeInstanceTest.java
index dd3b12beea..4e89658a83 100644
--- a/core-cube/src/test/java/org/apache/kylin/cube/CubeInstanceTest.java
+++ b/core-cube/src/test/java/org/apache/kylin/cube/CubeInstanceTest.java
@@ -24,9 +24,9 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 import org.apache.kylin.common.persistence.JsonSerializer;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.cube.cuboid.TreeCuboidScheduler;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.junit.Assert;
@@ -66,8 +66,8 @@ public void copyCubeSegmentTest() {
         CubeInstance newCubeInstance = CubeInstance.getCopyOf(cubeInstance);
 
         CubeSegment mockSeg = new CubeSegment();
-        mockSeg.setUuid(UUID.randomUUID().toString());
-        mockSeg.setStorageLocationIdentifier(UUID.randomUUID().toString());
+        mockSeg.setUuid(RandomUtil.randomUUID().toString());
+        mockSeg.setStorageLocationIdentifier(RandomUtil.randomUUID().toString());
         mockSeg.setStatus(SegmentStatusEnum.READY);
         newCubeInstance.getSegments().add(mockSeg);
 
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/global/SegmentAppendTrieDictBuilder.java b/core-dictionary/src/main/java/org/apache/kylin/dict/global/SegmentAppendTrieDictBuilder.java
index cfc1f98eed..05dd5d2b20 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/global/SegmentAppendTrieDictBuilder.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/global/SegmentAppendTrieDictBuilder.java
@@ -19,10 +19,10 @@
 package org.apache.kylin.dict.global;
 
 import java.io.IOException;
-import java.util.UUID;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Dictionary;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.dict.DictionaryInfo;
 import org.apache.kylin.dict.IDictionaryBuilder;
 
@@ -50,7 +50,7 @@ public void init(DictionaryInfo dictInfo, int baseId, String hdfsDir) throws IOE
 
         //use UUID to make each segment dict in different HDFS dir and support concurrent build
         //use timestamp to make the segment dict easily to delete
-        String baseDir = hdfsDir + "resources/SegmentDict" + dictInfo.getResourceDir() + "/" + UUID.randomUUID().toString() + "_" + System.currentTimeMillis()+ "/";
+        String baseDir = hdfsDir + "resources/SegmentDict" + dictInfo.getResourceDir() + "/" + RandomUtil.randomUUID().toString() + "_" + System.currentTimeMillis()+ "/";
 
         this.builder = new AppendTrieDictionaryBuilder(baseDir, maxEntriesPerSlice, false);
         this.baseId = baseId;
diff --git a/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java b/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java
index 36ca66ea38..ea61c61b2c 100644
--- a/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java
+++ b/core-dictionary/src/test/java/org/apache/kylin/dict/AppendTrieDictionaryTest.java
@@ -43,14 +43,13 @@
 import java.util.Map;
 import java.util.Random;
 import java.util.TreeMap;
-import java.util.UUID;
 
-import com.google.common.collect.Lists;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.dict.global.AppendDictSliceKey;
 import org.apache.kylin.dict.global.AppendTrieDictionaryBuilder;
 import org.apache.kylin.dict.global.GlobalDictHDFSStore;
@@ -60,8 +59,10 @@
 import org.junit.Ignore;
 import org.junit.Test;
 
+import com.google.common.collect.Lists;
+
 public class AppendTrieDictionaryTest extends LocalFileMetadataTestCase {
-    private static final String RESOURCE_DIR = "/dict/append_dict_test/" + UUID.randomUUID();
+    private static final String RESOURCE_DIR = "/dict/append_dict_test/" + RandomUtil.randomUUID();
     private static String BASE_DIR;
     private static String LOCAL_BASE_DIR;
 
diff --git a/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestBenchmark.java b/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestBenchmark.java
index adc1074dc6..9620f446ad 100644
--- a/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestBenchmark.java
+++ b/core-dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryForestBenchmark.java
@@ -18,16 +18,16 @@
 
 package org.apache.kylin.dict;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Random;
+
 import org.apache.kylin.common.util.Dictionary;
+import org.apache.kylin.common.util.RandomUtil;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Random;
-import java.util.UUID;
-
 /**
  * Created by xiefan on 16-12-28.
  */
@@ -166,7 +166,7 @@ private long runQueryIdByValueBytes(ArrayList<String> rawData, Dictionary<String
     private ArrayList<String> genStringDataSet(int totalSize) {
         ArrayList<String> data = new ArrayList<>();
         for (int i = 0; i < totalSize; i++) {
-            data.add(UUID.randomUUID().toString());
+            data.add(RandomUtil.randomUUID().toString());
         }
         Collections.sort(data);
         return data;
diff --git a/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/cache/RocksDBLookupTableCacheTest.java b/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/cache/RocksDBLookupTableCacheTest.java
index fb78591861..747fe23811 100644
--- a/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/cache/RocksDBLookupTableCacheTest.java
+++ b/core-dictionary/src/test/java/org/apache/kylin/dict/lookup/cache/RocksDBLookupTableCacheTest.java
@@ -28,12 +28,12 @@
 import java.io.IOException;
 import java.util.Iterator;
 import java.util.Random;
-import java.util.UUID;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Array;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.dict.lookup.ExtTableSnapshotInfo;
 import org.apache.kylin.dict.lookup.ExtTableSnapshotInfoManager;
 import org.apache.kylin.dict.lookup.IExtLookupProvider;
@@ -81,7 +81,7 @@ public void tearDown() {
 
     @Test
     public void testBuildTableCache() throws Exception {
-        String snapshotID = UUID.randomUUID().toString();
+        String snapshotID = RandomUtil.randomUUID().toString();
         ExtTableSnapshotInfo snapshotInfo = buildSnapshotCache(snapshotID, 100000);
         assertEquals(CacheState.AVAILABLE, RocksDBLookupTableCache.getInstance(kylinConfig).getCacheState(snapshotInfo));
     }
@@ -107,7 +107,7 @@ private ExtTableSnapshotInfo buildSnapshotCache(String snapshotID, int rowCnt) t
 
     @Test
     public void testRestoreCacheFromFiles() throws Exception {
-        String snapshotID = UUID.randomUUID().toString();
+        String snapshotID = RandomUtil.randomUUID().toString();
         String snapshotCacheBasePath = RocksDBLookupTableCache.getCacheBasePath(kylinConfig) + File.separator
                 + TABLE_COUNTRY + File.separator + snapshotID;
         String dbPath = snapshotCacheBasePath + File.separator + "db";
@@ -137,14 +137,14 @@ public void testEvict() throws Exception {
         int snapshotNum = 10;
         int snapshotRowCnt = 100000;
         for (int i = 0; i < snapshotNum; i++) {
-            buildSnapshotCache(UUID.randomUUID().toString(), snapshotRowCnt);
+            buildSnapshotCache(RandomUtil.randomUUID().toString(), snapshotRowCnt);
         }
         assertTrue(RocksDBLookupTableCache.getInstance(kylinConfig).getTotalCacheSize() < 0.006 * 1024 * 1024 * 1024);
     }
 
     @Test
     public void testCheckCacheState() throws Exception {
-        ExtTableSnapshotInfo snapshotInfo = buildSnapshotCache(UUID.randomUUID().toString(), 1000);
+        ExtTableSnapshotInfo snapshotInfo = buildSnapshotCache(RandomUtil.randomUUID().toString(), 1000);
         RocksDBLookupTableCache cache = RocksDBLookupTableCache.getInstance(kylinConfig);
         ILookupTable cachedLookupTable = cache.getCachedLookupTable(tableDesc, snapshotInfo, false);
         assertNotNull(cachedLookupTable);
diff --git a/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java b/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
index 1a534e110b..7fc9eafe16 100644
--- a/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
+++ b/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
@@ -23,7 +23,6 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 import java.util.regex.Matcher;
 
 import org.apache.commons.lang.StringUtils;
@@ -31,6 +30,7 @@
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.MailService;
 import org.apache.kylin.common.util.Pair;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.common.util.StringUtil;
 import org.apache.kylin.job.exception.ExecuteException;
 import org.apache.kylin.job.exception.PersistentException;
@@ -65,7 +65,7 @@
     private Map<String, String> params = Maps.newHashMap();
 
     public AbstractExecutable() {
-        setId(UUID.randomUUID().toString());
+        setId(RandomUtil.randomUUID().toString());
     }
 
     protected void initConfig(KylinConfig config) {
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/TableMetadataManager.java b/core-metadata/src/main/java/org/apache/kylin/metadata/TableMetadataManager.java
index 116e210abd..f3959faf37 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/TableMetadataManager.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/TableMetadataManager.java
@@ -25,7 +25,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
@@ -36,6 +35,7 @@
 import org.apache.kylin.common.util.AutoReadWriteLock.AutoLock;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.Pair;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.cachesync.Broadcaster;
 import org.apache.kylin.metadata.cachesync.Broadcaster.Event;
 import org.apache.kylin.metadata.cachesync.CachedCrudAssist;
@@ -353,7 +353,7 @@ public TableExtDesc getTableExt(TableDesc t) {
             if (null == result) {
                 result = new TableExtDesc();
                 result.setIdentity(t.getIdentity());
-                result.setUuid(UUID.randomUUID().toString());
+                result.setUuid(RandomUtil.randomUUID().toString());
                 result.setLastModified(0);
                 result.init(t.getProject());
                 srcExtMap.putLocal(mapKey(t.getIdentity(), t.getProject()), result);
@@ -426,7 +426,7 @@ private TableExtDesc convertOldTableExtToNewer(String resourceName) {
         String tableIdentity = TableDesc.parseResourcePath(resourceName).getFirst();
         TableExtDesc result = new TableExtDesc();
         result.setIdentity(tableIdentity);
-        result.setUuid(UUID.randomUUID().toString());
+        result.setUuid(RandomUtil.randomUUID().toString());
         result.setLastModified(0);
         result.setCardinality(cardinality);
         return result;
diff --git a/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java b/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java
index 5001cd2a64..436eb10e2f 100644
--- a/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java
+++ b/core-metadata/src/test/java/org/apache/kylin/metadata/badquery/BadQueryHistoryManagerTest.java
@@ -23,11 +23,11 @@
 
 import java.io.IOException;
 import java.util.NavigableSet;
-import java.util.UUID;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -67,7 +67,7 @@ public void testAddEntryToProject() throws IOException {
         KylinConfig kylinConfig = getTestConfig();
         BadQueryHistoryManager manager = BadQueryHistoryManager.getInstance(kylinConfig);
         BadQueryEntry entry = new BadQueryEntry("sql", "adj", 1459362239992L, 100, "server", "t-0", "user",
-                UUID.randomUUID().toString());
+                RandomUtil.randomUUID().toString());
         BadQueryHistory history = manager.upsertEntryToProject(entry, "default");
         NavigableSet<BadQueryEntry> entries = history.getEntries();
         assertEquals(4, entries.size());
@@ -84,7 +84,7 @@ public void testAddEntryToProject() throws IOException {
 
         for (int i = 0; i < kylinConfig.getBadQueryHistoryNum(); i++) {
             BadQueryEntry tmp = new BadQueryEntry("sql", "adj", 1459362239993L + i, 100 + i, "server", "t-0", "user",
-                    UUID.randomUUID().toString());
+                    RandomUtil.randomUUID().toString());
             history = manager.upsertEntryToProject(tmp, "default");
         }
         assertEquals(kylinConfig.getBadQueryHistoryNum(), history.getEntries().size());
@@ -95,7 +95,7 @@ public void testUpdateEntryToProject() throws IOException {
         KylinConfig kylinConfig = getTestConfig();
         BadQueryHistoryManager manager = BadQueryHistoryManager.getInstance(kylinConfig);
 
-        String queryId = UUID.randomUUID().toString();
+        String queryId = RandomUtil.randomUUID().toString();
         manager.upsertEntryToProject(
                 new BadQueryEntry("sql", "adj", 1459362239000L, 100, "server", "t-0", "user", queryId),
                 "default");
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/SortedColumnReaderTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/SortedColumnReaderTest.java
index 346a3ef903..29e2f6561b 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/SortedColumnReaderTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/SortedColumnReaderTest.java
@@ -32,6 +32,7 @@
 import java.util.UUID;
 
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.dict.ByteComparator;
 import org.apache.kylin.dict.BytesConverter;
 import org.apache.kylin.dict.IDictionaryValueEnumerator;
@@ -84,7 +85,7 @@ public void createStringTestFiles() throws Exception {
         ArrayList<String> data = new ArrayList<>();
         int num = 10000;
         for (int i = 0; i < num; i++) {
-            UUID uuid = UUID.randomUUID();
+            UUID uuid = RandomUtil.randomUUID();
             data.add(uuid.toString());
         }
         Collections.sort(data, new ByteComparator<String>(new StringBytesConverter()));
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/FactDistinctColumnsReducerTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/FactDistinctColumnsReducerTest.java
index c971cefd0c..d13da3c62b 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/FactDistinctColumnsReducerTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/FactDistinctColumnsReducerTest.java
@@ -21,12 +21,12 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.Map;
-import java.util.UUID;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.util.HadoopUtil;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.engine.mr.common.CubeStatsWriter;
 import org.apache.kylin.measure.hllc.HLLCounter;
 import org.junit.Test;
@@ -42,7 +42,7 @@ public void testWriteCuboidStatistics() throws IOException {
 
         final Configuration conf = HadoopUtil.getCurrentConfiguration();
         File tmp = File.createTempFile("cuboidstatistics", "");
-        final Path outputPath = new Path(tmp.getParent().toString() + File.separator + UUID.randomUUID().toString());
+        final Path outputPath = new Path(tmp.getParent().toString() + File.separator + RandomUtil.randomUUID().toString());
         if (!FileSystem.getLocal(conf).exists(outputPath)) {
             //            FileSystem.getLocal(conf).create(outputPath);
         }
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/SelfDefineSortableKeyTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/SelfDefineSortableKeyTest.java
index 551998fa12..f505a7a7bf 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/SelfDefineSortableKeyTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/SelfDefineSortableKeyTest.java
@@ -32,6 +32,7 @@
 import org.apache.hadoop.io.Text;
 import org.apache.kylin.common.util.ByteArray;
 import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.RandomUtil;
 import org.junit.Test;
 
 /**
@@ -114,7 +115,7 @@ public void testSortNormalString() {
         int count = 10;
         ArrayList<String> strList = new ArrayList<>();
         for (int i = 0; i < count; i++) {
-            UUID uuid = UUID.randomUUID();
+            UUID uuid = RandomUtil.randomUUID();
             strList.add(uuid.toString());
         }
         strList.add("hello");
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 ec6faf20d9..be54dce735 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
@@ -20,7 +20,6 @@
 
 import java.io.File;
 import java.nio.charset.Charset;
-import java.util.UUID;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -31,6 +30,7 @@
 import org.apache.curator.retry.ExponentialBackoffRetry;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.job.engine.JobEngineConfig;
 import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ExecutableManager;
@@ -57,8 +57,8 @@
     static File localMetaDir;
     static String backup;
 
-    static final String jobId1 = "job1" + UUID.randomUUID();
-    static final String jobId2 = "job2" + UUID.randomUUID();
+    static final String jobId1 = "job1" + RandomUtil.randomUUID();
+    static final String jobId2 = "job2" + RandomUtil.randomUUID();
     static final String serverName1 = "serverName1";
     static final String serverName2 = "serverName2";
     static final String confDstPath1 = "target/kylin_metadata_dist_lock_test1/kylin.properties";
diff --git a/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithStream.java b/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithStream.java
index 216ccc1a4f..97a9c9cb15 100644
--- a/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithStream.java
+++ b/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithStream.java
@@ -27,7 +27,6 @@
 import java.util.List;
 import java.util.Random;
 import java.util.TimeZone;
-import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -44,6 +43,7 @@
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
@@ -90,7 +90,7 @@
     private KafkaConfig kafkaConfig;
     private MockKafka kafkaServer;
     private ZkConnection zkConnection;
-    private final String kafkaZkPath = "/kylin/streaming/" + UUID.randomUUID().toString();
+    private final String kafkaZkPath = "/kylin/streaming/" + RandomUtil.randomUUID().toString();
 
     protected static boolean fastBuildMode = false;
     private volatile boolean generateData = true;
@@ -125,7 +125,7 @@ public void before() throws Exception {
         final StreamingConfig streamingConfig = streamingManager.getStreamingConfig(factTable);
         kafkaConfig = KafkaConfigManager.getInstance(kylinConfig).getKafkaConfig(streamingConfig.getName());
 
-        String topicName = UUID.randomUUID().toString();
+        String topicName = RandomUtil.randomUUID().toString();
         String localIp = NetworkUtils.getLocalIp();
         BrokerConfig brokerConfig = kafkaConfig.getKafkaClusterConfigs().get(0).getBrokerConfigs().get(0);
         brokerConfig.setHost(localIp);
diff --git a/kylin-it/src/test/java/org/apache/kylin/provision/MockKafka.java b/kylin-it/src/test/java/org/apache/kylin/provision/MockKafka.java
index fce422a217..db2b9486d7 100644
--- a/kylin-it/src/test/java/org/apache/kylin/provision/MockKafka.java
+++ b/kylin-it/src/test/java/org/apache/kylin/provision/MockKafka.java
@@ -22,13 +22,13 @@
 import java.util.List;
 import java.util.Properties;
 import java.util.Random;
-import java.util.UUID;
 
 import org.I0Itec.zkclient.ZkClient;
 import org.I0Itec.zkclient.ZkConnection;
 import org.I0Itec.zkclient.exception.ZkMarshallingError;
 import org.I0Itec.zkclient.serialize.ZkSerializer;
 import org.apache.kafka.common.requests.MetadataResponse;
+import org.apache.kylin.common.util.RandomUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -59,7 +59,7 @@ private static Properties createProperties(ZkConnection zkServerConnection, Stri
     private ZkConnection zkConnection;
 
     public MockKafka(ZkConnection zkServerConnection) {
-        this(zkServerConnection, System.getProperty("java.io.tmpdir") + "/" + UUID.randomUUID().toString(), "9092", "1");
+        this(zkServerConnection, System.getProperty("java.io.tmpdir") + "/" + RandomUtil.randomUUID().toString(), "9092", "1");
         start();
     }
 
@@ -69,7 +69,7 @@ private MockKafka(Properties properties) {
     }
 
     public MockKafka(ZkConnection zkServerConnection, int port, int brokerId) {
-        this(zkServerConnection, System.getProperty("java.io.tmpdir") + "/" + UUID.randomUUID().toString(), String.valueOf(port), String.valueOf(brokerId));
+        this(zkServerConnection, System.getProperty("java.io.tmpdir") + "/" + RandomUtil.randomUUID().toString(), String.valueOf(port), String.valueOf(brokerId));
         //start();
     }
 
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java
index f610d5c973..3f30ab9031 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java
@@ -26,12 +26,12 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
 
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
@@ -590,7 +590,7 @@ public CubeRequest saveCubeDesc(@RequestBody CubeRequest cubeRequest) {
         }
 
         try {
-            desc.setUuid(UUID.randomUUID().toString());
+            desc.setUuid(RandomUtil.randomUUID().toString());
             String projectName = (null == cubeRequest.getProject()) ? ProjectInstance.DEFAULT_PROJECT_NAME
                     : cubeRequest.getProject();
             ProjectInstance project = cubeService.getProjectManager().getProject(projectName);
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/ExternalFilterController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/ExternalFilterController.java
index 4ae7656278..c6a550007a 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/ExternalFilterController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/ExternalFilterController.java
@@ -22,9 +22,9 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.model.ExternalFilterDesc;
 import org.apache.kylin.rest.request.ExternalFilterRequest;
 import org.apache.kylin.rest.service.ExtFilterService;
@@ -60,7 +60,7 @@
         Map<String, String> result = new HashMap();
         String filterProject = request.getProject();
         ExternalFilterDesc desc = JsonUtil.readValue(request.getExtFilter(), ExternalFilterDesc.class);
-        desc.setUuid(UUID.randomUUID().toString());
+        desc.setUuid(RandomUtil.randomUUID().toString());
         extFilterService.saveExternalFilter(desc);
         extFilterService.syncExtFilterToProject(new String[] { desc.getName() }, filterProject);
         result.put("success", "true");
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/ModelController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/ModelController.java
index 41c7889a70..a27e148595 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/ModelController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/ModelController.java
@@ -21,11 +21,11 @@
 import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
-import java.util.UUID;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.DataModelManager;
 import org.apache.kylin.metadata.project.ProjectInstance;
@@ -119,7 +119,7 @@ public ModelRequest saveModelDesc(@RequestBody ModelRequest modelRequest) {
         }
 
         try {
-            modelDesc.setUuid(UUID.randomUUID().toString());
+            modelDesc.setUuid(RandomUtil.randomUUID().toString());
             String projectName = (null == modelRequest.getProject()) ? ProjectInstance.DEFAULT_PROJECT_NAME
                     : modelRequest.getProject();
 
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java
index ccd489d999..64c14bc2b2 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/StreamingController.java
@@ -20,11 +20,11 @@
 
 import java.io.IOException;
 import java.util.List;
-import java.util.UUID;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.streaming.StreamingConfig;
 import org.apache.kylin.rest.exception.BadRequestException;
@@ -144,7 +144,7 @@ public StreamingRequest saveStreamingConfig(@RequestBody StreamingRequest stream
                 throw new BadRequestException("StremingConfig name should not be empty.");
             }
             try {
-                streamingConfig.setUuid(UUID.randomUUID().toString());
+                streamingConfig.setUuid(RandomUtil.randomUUID().toString());
                 streamingService.createStreamingConfig(streamingConfig, project);
                 saveStreamingSuccess = true;
             } catch (IOException e) {
@@ -152,7 +152,7 @@ public StreamingRequest saveStreamingConfig(@RequestBody StreamingRequest stream
                 throw new InternalErrorException("Failed to save StreamingConfig: " + e.getLocalizedMessage());
             }
             try {
-                kafkaConfig.setUuid(UUID.randomUUID().toString());
+                kafkaConfig.setUuid(RandomUtil.randomUUID().toString());
                 kafkaConfigService.createKafkaConfig(kafkaConfig, project);
                 saveKafkaSuccess = true;
             } catch (IOException e) {
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/TableService.java b/server-base/src/main/java/org/apache/kylin/rest/service/TableService.java
index 3c661f2aca..d8d802df5d 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/TableService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/TableService.java
@@ -28,15 +28,14 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
 
-import com.google.common.collect.Maps;
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.dict.lookup.ExtTableSnapshotInfo;
 import org.apache.kylin.dict.lookup.ExtTableSnapshotInfoManager;
@@ -58,8 +57,8 @@
 import org.apache.kylin.rest.msg.Message;
 import org.apache.kylin.rest.msg.MsgPicker;
 import org.apache.kylin.rest.response.TableDescResponse;
-import org.apache.kylin.rest.util.AclEvaluate;
 import org.apache.kylin.rest.response.TableSnapshotResponse;
+import org.apache.kylin.rest.util.AclEvaluate;
 import org.apache.kylin.source.IReadableTable;
 import org.apache.kylin.source.IReadableTable.TableSignature;
 import org.apache.kylin.source.ISource;
@@ -77,6 +76,7 @@
 import com.google.common.base.Preconditions;
 import com.google.common.collect.LinkedHashMultimap;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.google.common.collect.SetMultimap;
 import com.google.common.collect.Sets;
 
@@ -148,7 +148,7 @@ public TableDesc getTableDescByName(String tableName, boolean withExt, String pr
 
             TableDesc origTable = metaMgr.getTableDesc(tableDesc.getIdentity(), project);
             if (origTable == null || origTable.getProject() == null) {
-                tableDesc.setUuid(UUID.randomUUID().toString());
+                tableDesc.setUuid(RandomUtil.randomUUID().toString());
                 tableDesc.setLastModified(0);
             } else {
                 tableDesc.setUuid(origTable.getUuid());
@@ -158,7 +158,7 @@ public TableDesc getTableDescByName(String tableName, boolean withExt, String pr
 
             TableExtDesc origExt = metaMgr.getTableExt(tableDesc.getIdentity(), project);
             if (origExt == null || origExt.getProject() == null) {
-                extDesc.setUuid(UUID.randomUUID().toString());
+                extDesc.setUuid(RandomUtil.randomUUID().toString());
                 extDesc.setLastModified(0);
             } else {
                 extDesc.setUuid(origExt.getUuid());
@@ -305,7 +305,7 @@ public boolean unloadHiveTable(String tableName, String project) throws IOExcept
      */
     public void addStreamingTable(TableDesc desc, String project) throws IOException {
         aclEvaluate.checkProjectAdminPermission(project);
-        desc.setUuid(UUID.randomUUID().toString());
+        desc.setUuid(RandomUtil.randomUUID().toString());
         getTableManager().saveSourceTable(desc, project);
         addTableToProject(new String[] { desc.getIdentity() }, project);
     }
diff --git a/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java b/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java
index 61e52b735f..ce1bedcc68 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java
@@ -22,9 +22,9 @@
 import static org.junit.Assert.assertEquals;
 
 import java.util.ArrayList;
-import java.util.UUID;
 
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.badquery.BadQueryEntry;
 import org.apache.kylin.rest.request.SQLRequest;
 import org.junit.After;
@@ -66,7 +66,7 @@ public void badQueryFound(String adj, float runningSec, long startTime, String p
 
             SQLRequest sqlRequest = new SQLRequest();
             sqlRequest.setSql(mockSql);
-            badQueryDetector.queryStart(Thread.currentThread(), sqlRequest, "user", UUID.randomUUID().toString());
+            badQueryDetector.queryStart(Thread.currentThread(), sqlRequest, "user", RandomUtil.randomUUID().toString());
 
             // make sure bad query check happens twice
             Thread.sleep((alertRunningSec * 2 + 1) * 1000);
diff --git a/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
index b128f1e8e9..06f5f9c3d2 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
@@ -24,12 +24,12 @@
 
 import java.util.Arrays;
 import java.util.Set;
-import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.CheckUtil;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.cube.CubeDescManager;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
@@ -295,7 +295,7 @@ private TableDesc createTestTableDesc() {
         TableDesc tableDesc = new TableDesc();
         tableDesc.setDatabase("TEST_DB");
         tableDesc.setName("TEST_TABLE");
-        tableDesc.setUuid(UUID.randomUUID().toString());
+        tableDesc.setUuid(RandomUtil.randomUUID().toString());
         tableDesc.setLastModified(0);
         return tableDesc;
     }
diff --git a/server/src/test/java/org/apache/kylin/rest/service/KylinQueryTimeoutTest.java b/server/src/test/java/org/apache/kylin/rest/service/KylinQueryTimeoutTest.java
index 38b3270222..f2cf276a1d 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/KylinQueryTimeoutTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/KylinQueryTimeoutTest.java
@@ -19,11 +19,11 @@
 package org.apache.kylin.rest.service;
 
 import java.sql.SQLException;
-import java.util.UUID;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exceptions.KylinTimeoutException;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.SQLDigest;
 import org.apache.kylin.metadata.tuple.ITupleIterator;
@@ -71,7 +71,7 @@ public void testQueryTimeout() throws SQLException {
         SQLRequest request = new SQLRequest();
         request.setProject("default");
         request.setSql("select count(*) from STREAMING_TABLE");
-        detector.queryStart(Thread.currentThread(), request, "ADMIN", UUID.randomUUID().toString());
+        detector.queryStart(Thread.currentThread(), request, "ADMIN", RandomUtil.randomUUID().toString());
         try {
             QueryACLTestUtil.mockQuery("default", "select * from STREAMING_TABLE");
         } finally{
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMetadataExplorer.java b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMetadataExplorer.java
index 9d4cc53628..42df327aca 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMetadataExplorer.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMetadataExplorer.java
@@ -26,6 +26,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Pair;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.TableMetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
@@ -70,7 +71,7 @@
             tableDesc = new TableDesc();
             tableDesc.setDatabase(database.toUpperCase());
             tableDesc.setName(tableName.toUpperCase());
-            tableDesc.setUuid(UUID.randomUUID().toString());
+            tableDesc.setUuid(RandomUtil.randomUUID().toString());
             tableDesc.setLastModified(0);
         } else {
             tableDesc = new TableDesc(tableDesc);
@@ -91,7 +92,7 @@
 
         TableExtDesc tableExtDesc = new TableExtDesc();
         tableExtDesc.setIdentity(tableDesc.getIdentity());
-        tableExtDesc.setUuid(UUID.randomUUID().toString());
+        tableExtDesc.setUuid(RandomUtil.randomUUID().toString());
         tableExtDesc.setLastModified(0);
         tableExtDesc.init(prj);
 
diff --git a/source-hive/src/main/java/org/apache/kylin/source/jdbc/JdbcExplorer.java b/source-hive/src/main/java/org/apache/kylin/source/jdbc/JdbcExplorer.java
index d858cd430e..bba20084d6 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/jdbc/JdbcExplorer.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/jdbc/JdbcExplorer.java
@@ -31,6 +31,7 @@
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.DBUtils;
 import org.apache.kylin.common.util.Pair;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.datatype.DataType;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.ISourceAware;
@@ -79,7 +80,7 @@ public JdbcExplorer() {
         TableDesc tableDesc = new TableDesc();
         tableDesc.setDatabase(database.toUpperCase());
         tableDesc.setName(table.toUpperCase());
-        tableDesc.setUuid(UUID.randomUUID().toString());
+        tableDesc.setUuid(RandomUtil.randomUUID().toString());
         tableDesc.setLastModified(0);
         tableDesc.setSourceType(ISourceAware.ID_JDBC);
 
@@ -106,7 +107,7 @@ public JdbcExplorer() {
 
         TableExtDesc tableExtDesc = new TableExtDesc();
         tableExtDesc.setIdentity(tableDesc.getIdentity());
-        tableExtDesc.setUuid(UUID.randomUUID().toString());
+        tableExtDesc.setUuid(RandomUtil.randomUUID().toString());
         tableExtDesc.setLastModified(0);
         tableExtDesc.init(prj);
 
diff --git a/source-hive/src/test/java/org/apache/kylin/source/hive/HiveMRInputTest.java b/source-hive/src/test/java/org/apache/kylin/source/hive/HiveMRInputTest.java
index 34c946a1ae..384c2b8ba6 100644
--- a/source-hive/src/test/java/org/apache/kylin/source/hive/HiveMRInputTest.java
+++ b/source-hive/src/test/java/org/apache/kylin/source/hive/HiveMRInputTest.java
@@ -22,13 +22,13 @@
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
-import java.util.UUID;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.KylinConfig.SetAndUnsetThreadLocalConfig;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.job.execution.DefaultChainedExecutable;
 import org.junit.Assert;
 import org.junit.Test;
@@ -44,7 +44,7 @@ public void TestGetJobWorkingDir() throws IOException {
             when(kylinConfig.getHiveTableDirCreateFirst()).thenReturn(true);
             when(kylinConfig.getHdfsWorkingDirectory()).thenReturn("/tmp/kylin/");
             DefaultChainedExecutable defaultChainedExecutable = mock(DefaultChainedExecutable.class);
-            defaultChainedExecutable.setId(UUID.randomUUID().toString());
+            defaultChainedExecutable.setId(RandomUtil.randomUUID().toString());
 
             String jobWorkingDir = HiveInputBase.getJobWorkingDir(defaultChainedExecutable, KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory());
             jobWorkDirPath = new Path(jobWorkingDir);
diff --git a/source-kafka/src/main/java/org/apache/kylin/source/kafka/util/KafkaSampleProducer.java b/source-kafka/src/main/java/org/apache/kylin/source/kafka/util/KafkaSampleProducer.java
index 7c8deefb8a..973f020ead 100644
--- a/source-kafka/src/main/java/org/apache/kylin/source/kafka/util/KafkaSampleProducer.java
+++ b/source-kafka/src/main/java/org/apache/kylin/source/kafka/util/KafkaSampleProducer.java
@@ -26,7 +26,6 @@
 import java.util.Map;
 import java.util.Properties;
 import java.util.Random;
-import java.util.UUID;
 
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
@@ -36,6 +35,7 @@
 import org.apache.kafka.clients.producer.ProducerRecord;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.OptionsHelper;
+import org.apache.kylin.common.util.RandomUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -126,7 +126,7 @@ public static void main(String[] args) throws Exception {
             record.put("amount", rnd.nextDouble() * 100);
             //add embedded record
             Map<String, Object> user = new HashMap();
-            user.put("id", UUID.randomUUID().toString());
+            user.put("id", RandomUtil.randomUUID().toString());
             user.put("gender", genders.get(rnd.nextInt(2)));
             user.put("age", rnd.nextInt(20) + 10);
             user.put("first_name", "unknown");
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
index 23df556beb..fda3e0772c 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
@@ -27,7 +27,6 @@
 import java.util.Map;
 import java.util.NavigableSet;
 import java.util.TreeSet;
-import java.util.UUID;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.fs.FSDataOutputStream;
@@ -58,6 +57,7 @@
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.HadoopUtil;
+import org.apache.kylin.common.util.RandomUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -149,7 +149,7 @@ protected String createMetaStoreUUID() throws IOException {
             String uuid = desc.getValue(HBaseConnection.HTABLE_UUID_TAG);
             if (uuid != null)
                 return uuid;
-            return UUID.randomUUID().toString();
+            return RandomUtil.randomUUID().toString();
         } catch (Exception e) {
             return null;
         }
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/lookup/HBaseLookupMRSteps.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/lookup/HBaseLookupMRSteps.java
index 1c91be2604..fb5bab56b6 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/lookup/HBaseLookupMRSteps.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/lookup/HBaseLookupMRSteps.java
@@ -21,9 +21,9 @@
 import java.io.IOException;
 import java.util.List;
 import java.util.Set;
-import java.util.UUID;
 
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.DimensionDesc;
@@ -105,7 +105,7 @@ public void addMaterializeLookupTableSteps(LookupMaterializeContext context, Str
     }
 
     private String genLookupSnapshotID() {
-        return UUID.randomUUID().toString();
+        return RandomUtil.randomUUID().toString();
     }
 
     private void addLookupTableConvertToHFilesStep(DefaultChainedExecutable jobFlow, String tableName, String snapshotID) {
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HFileOutputFormat3.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HFileOutputFormat3.java
index f3f226c70e..e58a00e1ff 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HFileOutputFormat3.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HFileOutputFormat3.java
@@ -27,12 +27,9 @@
 import java.util.Map;
 import java.util.TreeMap;
 import java.util.TreeSet;
-import java.util.UUID;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hbase.classification.InterfaceAudience;
-import org.apache.hadoop.hbase.classification.InterfaceStability;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
@@ -43,6 +40,8 @@
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValueUtil;
+import org.apache.hadoop.hbase.classification.InterfaceAudience;
+import org.apache.hadoop.hbase.classification.InterfaceStability;
 import org.apache.hadoop.hbase.client.HTable;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.RegionLocator;
@@ -78,6 +77,7 @@
 import org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner;
+import org.apache.kylin.common.util.RandomUtil;
 
 import com.google.common.annotations.VisibleForTesting;
 
@@ -576,7 +576,7 @@ static void configurePartitioner(Job job, List<ImmutableBytesWritable> splitPoin
         Configuration conf = job.getConfiguration();
         // create the partitions file
         FileSystem fs = FileSystem.get(conf);
-        Path partitionsPath = new Path(conf.get("hbase.fs.tmp.dir"), "partitions_" + UUID.randomUUID());
+        Path partitionsPath = new Path(conf.get("hbase.fs.tmp.dir"), "partitions_" + RandomUtil.randomUUID());
         fs.makeQualified(partitionsPath);
         writePartitions(conf, partitionsPath, splitPoints);
         fs.deleteOnExit(partitionsPath);
diff --git a/tool/src/main/java/org/apache/kylin/tool/metrics/systemcube/KylinTableCreator.java b/tool/src/main/java/org/apache/kylin/tool/metrics/systemcube/KylinTableCreator.java
index a2a0616b3f..108c2105dc 100644
--- a/tool/src/main/java/org/apache/kylin/tool/metrics/systemcube/KylinTableCreator.java
+++ b/tool/src/main/java/org/apache/kylin/tool/metrics/systemcube/KylinTableCreator.java
@@ -21,10 +21,10 @@
 import java.io.ByteArrayOutputStream;
 import java.io.DataOutputStream;
 import java.util.List;
-import java.util.UUID;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Pair;
+import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.TableMetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
@@ -91,7 +91,7 @@ public static TableDesc generateKylinTable(KylinConfig kylinConfig, SinkTool sin
 
         Pair<String, String> tableNameSplits = ActiveReservoirReporter
                 .getTableNameSplits(sinkTool.getTableNameForMetrics(subject));
-        kylinTable.setUuid(UUID.randomUUID().toString());
+        kylinTable.setUuid(RandomUtil.randomUUID().toString());
         kylinTable.setDatabase(tableNameSplits.getFirst());
         kylinTable.setName(tableNameSplits.getSecond());
         kylinTable.setTableType(null);


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services