You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by bi...@apache.org on 2018/09/27 13:17:24 UTC
[kylin] branch master updated: Add private constructor for utility
classes.
This is an automated email from the ASF dual-hosted git repository.
billyliu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push:
new de396e3 Add private constructor for utility classes.
de396e3 is described below
commit de396e3bb019243a4dfe51e11c77db6381de4357
Author: Lijun Cao <64...@qq.com>
AuthorDate: Thu Sep 27 18:40:21 2018 +0800
Add private constructor for utility classes.
---
.../src/main/java/org/apache/kylin/common/util/BytesUtil.java | 4 ++++
.../src/main/java/org/apache/kylin/common/util/ClassUtil.java | 4 ++++
.../src/main/java/org/apache/kylin/common/util/CompressionUtils.java | 4 ++++
.../src/main/java/org/apache/kylin/common/util/HadoopUtil.java | 3 +++
.../src/main/java/org/apache/kylin/common/util/IdentityUtils.java | 5 +++++
core-common/src/main/java/org/apache/kylin/common/util/JsonUtil.java | 4 ++++
core-common/src/main/java/org/apache/kylin/common/util/MathUtil.java | 5 +++++
.../src/main/java/org/apache/kylin/common/util/RandomUtil.java | 5 +++++
.../src/main/java/org/apache/kylin/common/util/RangeUtil.java | 4 ++++
core-common/src/main/java/org/apache/kylin/common/util/SortUtil.java | 5 +++++
.../java/org/apache/kylin/common/util/SourceConfigurationUtil.java | 4 ++++
.../src/main/java/org/apache/kylin/common/util/StringUtil.java | 4 ++++
core-common/src/main/java/org/apache/kylin/common/util/TimeUtil.java | 4 ++++
.../src/main/java/org/apache/kylin/common/util/ZipFileUtils.java | 4 ++++
.../src/main/java/org/apache/kylin/common/util/ZooKeeperUtil.java | 4 ++++
.../main/java/org/apache/kylin/job/util/MailNotificationUtil.java | 4 ++++
core-metadata/src/main/java/org/apache/kylin/util/KryoUtils.java | 4 ++++
.../src/main/java/org/apache/kylin/storage/util/SizeOfUtil.java | 1 +
.../main/java/org/apache/kylin/engine/spark/util/IteratorUtils.java | 4 ++++
query/src/main/java/org/apache/kylin/query/util/PushDownUtil.java | 4 ++++
query/src/main/java/org/apache/kylin/query/util/QueryUtil.java | 4 ++++
query/src/main/java/org/apache/kylin/query/util/RexUtil.java | 4 ++++
.../src/main/java/org/apache/kylin/rest/util/AclPermissionUtil.java | 4 ++++
.../src/main/java/org/apache/kylin/rest/util/QueryRequestLimits.java | 2 +-
.../src/main/java/org/apache/kylin/rest/util/TableauInterceptor.java | 4 ++++
.../main/java/org/apache/kylin/source/kafka/util/KafkaClient.java | 4 ++++
tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java | 5 +++++
27 files changed, 106 insertions(+), 1 deletion(-)
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
index faabbd1..a597780 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
@@ -26,6 +26,10 @@ import com.google.common.primitives.Shorts;
public class BytesUtil {
+ private BytesUtil() {
+ throw new IllegalStateException("Class BytesUtil is an utility class !");
+ }
+
public static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
public static void writeByte(byte num, byte[] bytes, int offset, int size) {
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/ClassUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/ClassUtil.java
index bfc6ce1..cd78fe0 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/ClassUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/ClassUtil.java
@@ -36,6 +36,10 @@ public class ClassUtil {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ClassUtil.class);
+ private ClassUtil() {
+ throw new IllegalStateException("Class ClassUtil is an utility class !");
+ }
+
public static void addClasspath(String path) {
logger.info("Adding path " + path + " to class path");
File file = new File(path);
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/CompressionUtils.java b/core-common/src/main/java/org/apache/kylin/common/util/CompressionUtils.java
index 7bd520c..997a8d8 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/CompressionUtils.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/CompressionUtils.java
@@ -30,6 +30,10 @@ import org.slf4j.LoggerFactory;
public class CompressionUtils {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(CompressionUtils.class);
+ private CompressionUtils() {
+ throw new IllegalStateException("Class CompressionUtils is an utility class !");
+ }
+
public static byte[] compress(byte[] data) throws IOException {
long startTime = System.currentTimeMillis();
Deflater deflater = new Deflater(1);
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
index 152d506..9364279 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
@@ -46,6 +46,9 @@ public class HadoopUtil {
@SuppressWarnings("unused")
private static final Logger logger = LoggerFactory.getLogger(HadoopUtil.class);
private static final transient ThreadLocal<Configuration> hadoopConfig = new ThreadLocal<>();
+ private HadoopUtil() {
+ throw new IllegalStateException("Class HadoopUtil is an utility class !");
+ }
public static void setCurrentConfiguration(Configuration conf) {
hadoopConfig.set(conf);
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/IdentityUtils.java b/core-common/src/main/java/org/apache/kylin/common/util/IdentityUtils.java
index 35ade60..e42a64f 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/IdentityUtils.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/IdentityUtils.java
@@ -23,6 +23,11 @@ import java.util.IdentityHashMap;
/**
*/
public class IdentityUtils {
+
+ private IdentityUtils() {
+ throw new IllegalStateException("Class IdentityUtils is an utility class !");
+ }
+
public static <K> boolean collectionReferenceEquals(Collection<K> collectionA, Collection<K> collectionB) {
if (collectionA == null || collectionB == null) {
throw new RuntimeException("input must be not null");
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/JsonUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/JsonUtil.java
index 21bc8f1..8cb7f65 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/JsonUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/JsonUtil.java
@@ -38,6 +38,10 @@ import com.fasterxml.jackson.databind.SerializationFeature;
public class JsonUtil {
+ private JsonUtil() {
+ throw new IllegalStateException("Class JsonUtil is an utility class !");
+ }
+
// reuse the object mapper to save memory footprint
private static final ObjectMapper mapper = new ObjectMapper();
private static final ObjectMapper indentMapper = new ObjectMapper();
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/MathUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/MathUtil.java
index ae674c6..8270290 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/MathUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/MathUtil.java
@@ -21,6 +21,11 @@ package org.apache.kylin.common.util;
import java.util.List;
public class MathUtil {
+
+ private MathUtil() {
+ throw new IllegalStateException("Class MathUtil is an utility class !");
+ }
+
public static double findMedianInSortedList(List<Double> m) {
int middle = m.size() / 2;
if (m.size() % 2 == 1) {
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
index 00be8dd..226cd20 100644
--- 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
@@ -22,6 +22,11 @@ import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
public class RandomUtil {
+
+ private RandomUtil() {
+ throw new IllegalStateException("Class RandomUtil is an utility class !");
+ }
+
public static UUID randomUUID() {
return new UUID(ThreadLocalRandom.current().nextLong(), ThreadLocalRandom.current().nextLong());
}
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java
index 6ef8c089..ec61f7d 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java
@@ -34,6 +34,10 @@ import com.google.common.collect.Range;
*/
public class RangeUtil {
+ private RangeUtil() {
+ throw new IllegalStateException("Class RangeUtil is an utility class !");
+ }
+
/**
* for NavigableMap sorted by C, given a range of C, return the sub map whose key falls in the range
*/
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/SortUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/SortUtil.java
index 1ea9d97..42da69d 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/SortUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/SortUtil.java
@@ -26,6 +26,11 @@ import com.google.common.collect.TreeMultimap;
/**
*/
public class SortUtil {
+
+ private SortUtil() {
+ throw new IllegalStateException("Class SortUtil is an utility class !");
+ }
+
public static <T extends Comparable, E extends Comparable> Iterator<T> extractAndSort(Iterator<T> input, Function<T, E> extractor) {
TreeMultimap<E, T> reorgnized = TreeMultimap.create();
while (input.hasNext()) {
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/SourceConfigurationUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/SourceConfigurationUtil.java
index 7e61d62..80e2f71 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/SourceConfigurationUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/SourceConfigurationUtil.java
@@ -41,6 +41,10 @@ public class SourceConfigurationUtil {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SourceConfigurationUtil.class);
private static final String HIVE_CONF_PREFIX = "hiveconf:";
+ private SourceConfigurationUtil() {
+ throw new IllegalStateException("Class SourceConfigurationUtil is an utility class !");
+ }
+
public static final String HIVE_CONF_FILENAME = "kylin_hive_conf";
public static final String SQOOP_CONF_FILENAME = "kylin_sqoop_conf";
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java
index 0b94d9c..84c1da5 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java
@@ -28,6 +28,10 @@ import org.apache.commons.lang.StringUtils;
*/
public class StringUtil {
+ private StringUtil() {
+ throw new IllegalStateException("Class StringUtil is an utility class !");
+ }
+
public static String[] filterSystemArgs(String[] args) {
ArrayList<String> whatsLeft = new ArrayList<String>();
for (String a : args) {
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/TimeUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/TimeUtil.java
index 73209f5..bf3f351 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/TimeUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/TimeUtil.java
@@ -26,6 +26,10 @@ import java.util.TimeZone;
*/
public class TimeUtil {
+ private TimeUtil() {
+ throw new IllegalStateException("Class TimeUtil is an utility class !");
+ }
+
private static TimeZone gmt = TimeZone.getTimeZone("GMT");
private static long ONE_MINUTE_TS = 60 * 1000L;
private static long ONE_HOUR_TS = 60 * ONE_MINUTE_TS;
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
index f67b2a2..f68eb59 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
@@ -35,6 +35,10 @@ public class ZipFileUtils {
private static final Logger logger = LoggerFactory.getLogger(ZipFileUtils.class);
+ private ZipFileUtils() {
+ throw new IllegalStateException("Class ZipFileUtils is an utility class !");
+ }
+
public static void compressZipFile(String sourceDir, String zipFileName) throws IOException, ArchiveException {
if (!validateZipFilename(zipFileName)) {
throw new RuntimeException("Zip file must end with .zip");
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/ZooKeeperUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/ZooKeeperUtil.java
index 66fed31..48a70b9 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/ZooKeeperUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/ZooKeeperUtil.java
@@ -36,6 +36,10 @@ import com.google.common.collect.Iterables;
public class ZooKeeperUtil {
private static final Logger logger = LoggerFactory.getLogger(ZooKeeperUtil.class);
+ private ZooKeeperUtil() {
+ throw new IllegalStateException("Class ZooKeeperUtil is an utility class !");
+ }
+
public static String getZKConnectStringFromHBase() {
Configuration hconf = null;
try {
diff --git a/core-job/src/main/java/org/apache/kylin/job/util/MailNotificationUtil.java b/core-job/src/main/java/org/apache/kylin/job/util/MailNotificationUtil.java
index 31c5b20..aba1cc1 100644
--- a/core-job/src/main/java/org/apache/kylin/job/util/MailNotificationUtil.java
+++ b/core-job/src/main/java/org/apache/kylin/job/util/MailNotificationUtil.java
@@ -45,6 +45,10 @@ public class MailNotificationUtil {
}
}
+ private MailNotificationUtil() {
+ throw new IllegalStateException("Class MailNotificationUtil is an utility class !");
+ }
+
private static String getMailTemplateKey(ExecutableState state) {
switch (state) {
case ERROR:
diff --git a/core-metadata/src/main/java/org/apache/kylin/util/KryoUtils.java b/core-metadata/src/main/java/org/apache/kylin/util/KryoUtils.java
index 4059e94..675d49d 100644
--- a/core-metadata/src/main/java/org/apache/kylin/util/KryoUtils.java
+++ b/core-metadata/src/main/java/org/apache/kylin/util/KryoUtils.java
@@ -30,6 +30,10 @@ public class KryoUtils {
private static ThreadLocal<Kryo> _Kryo = new ThreadLocal<>();
+ private KryoUtils() {
+ throw new IllegalStateException("Class KryoUtils is an utility class !");
+ }
+
public static byte[] serialize(Object obj) {
Kryo kryo = getKryo();
Output output = new Output(1024, 8 * 1024 * 1024);
diff --git a/core-storage/src/main/java/org/apache/kylin/storage/util/SizeOfUtil.java b/core-storage/src/main/java/org/apache/kylin/storage/util/SizeOfUtil.java
index aa379d4..e3e2030 100644
--- a/core-storage/src/main/java/org/apache/kylin/storage/util/SizeOfUtil.java
+++ b/core-storage/src/main/java/org/apache/kylin/storage/util/SizeOfUtil.java
@@ -25,6 +25,7 @@ import net.sf.ehcache.pool.sizeof.ReflectionSizeOf;
public final class SizeOfUtil {
private SizeOfUtil() {
+ throw new IllegalStateException("Class SizeOfUtil is an utility class !");
}
private static final ReflectionSizeOf DEFAULT_SIZE_OF = new ReflectionSizeOf();
diff --git a/engine-spark/src/main/java/org/apache/kylin/engine/spark/util/IteratorUtils.java b/engine-spark/src/main/java/org/apache/kylin/engine/spark/util/IteratorUtils.java
index a8a4d28..2dd7e48 100644
--- a/engine-spark/src/main/java/org/apache/kylin/engine/spark/util/IteratorUtils.java
+++ b/engine-spark/src/main/java/org/apache/kylin/engine/spark/util/IteratorUtils.java
@@ -30,6 +30,10 @@ import scala.Tuple2;
*/
public class IteratorUtils {
+ private IteratorUtils() {
+ throw new IllegalStateException("Class IteratorUtils is an utility class !");
+ }
+
public static <K, V> Iterator<Tuple2<K, V>> merge(final Iterator<Tuple2<K, V>> input, final Comparator<K> comparator, final Function<Iterable<V>, V> converter) {
return new Iterator<Tuple2<K, V>>() {
diff --git a/query/src/main/java/org/apache/kylin/query/util/PushDownUtil.java b/query/src/main/java/org/apache/kylin/query/util/PushDownUtil.java
index 7c88141..4010a96 100644
--- a/query/src/main/java/org/apache/kylin/query/util/PushDownUtil.java
+++ b/query/src/main/java/org/apache/kylin/query/util/PushDownUtil.java
@@ -62,6 +62,10 @@ import com.google.common.collect.Lists;
public class PushDownUtil {
private static final Logger logger = LoggerFactory.getLogger(PushDownUtil.class);
+ private PushDownUtil() {
+ throw new IllegalStateException("Class PushDownUtil is an utility class !");
+ }
+
public static Pair<List<List<String>>, List<SelectedColumnMeta>> tryPushDownSelectQuery(String project, String sql,
String defaultSchema, SQLException sqlException, boolean isPrepare) throws Exception {
return tryPushDownQuery(project, sql, defaultSchema, sqlException, true, isPrepare);
diff --git a/query/src/main/java/org/apache/kylin/query/util/QueryUtil.java b/query/src/main/java/org/apache/kylin/query/util/QueryUtil.java
index 4378221..5420327 100644
--- a/query/src/main/java/org/apache/kylin/query/util/QueryUtil.java
+++ b/query/src/main/java/org/apache/kylin/query/util/QueryUtil.java
@@ -38,6 +38,10 @@ public class QueryUtil {
protected static final Logger logger = LoggerFactory.getLogger(QueryUtil.class);
+ private QueryUtil() {
+ throw new IllegalStateException("Class QueryUtil is an utility class !");
+ }
+
private static List<IQueryTransformer> queryTransformers;
public interface IQueryTransformer {
diff --git a/query/src/main/java/org/apache/kylin/query/util/RexUtil.java b/query/src/main/java/org/apache/kylin/query/util/RexUtil.java
index 27087ee..c31cb11 100644
--- a/query/src/main/java/org/apache/kylin/query/util/RexUtil.java
+++ b/query/src/main/java/org/apache/kylin/query/util/RexUtil.java
@@ -28,6 +28,10 @@ import org.apache.kylin.metadata.filter.CompareTupleFilter;
public class RexUtil {
+ private RexUtil() {
+ throw new IllegalStateException("Class RexUtil is an utility class !");
+ }
+
public static CompareTupleFilter.CompareResultType getCompareResultType(RexCall whenCall) {
List<RexNode> operands = whenCall.getOperands();
if (SqlKind.EQUALS == whenCall.getKind() && operands != null && operands.size() == 2) {
diff --git a/server-base/src/main/java/org/apache/kylin/rest/util/AclPermissionUtil.java b/server-base/src/main/java/org/apache/kylin/rest/util/AclPermissionUtil.java
index 4526522..3737648 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/util/AclPermissionUtil.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/util/AclPermissionUtil.java
@@ -30,6 +30,10 @@ import org.springframework.security.core.context.SecurityContextHolder;
public class AclPermissionUtil {
+ private AclPermissionUtil() {
+ throw new IllegalStateException("Class AclPermissionUtil is an utility class !");
+ }
+
public static List<String> transformAuthorities(Collection<? extends GrantedAuthority> authorities) {
List<String> ret = new ArrayList<String>();
for (GrantedAuthority auth : authorities) {
diff --git a/server-base/src/main/java/org/apache/kylin/rest/util/QueryRequestLimits.java b/server-base/src/main/java/org/apache/kylin/rest/util/QueryRequestLimits.java
index eb8eee8..9b50030 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/util/QueryRequestLimits.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/util/QueryRequestLimits.java
@@ -109,7 +109,7 @@ public class QueryRequestLimits implements AutoCloseable {
boolean ok = openQueryRequest(project, maxConcurrentQuery);
if (!ok) {
Message msg = MsgPicker.getMsg();
- logger.warn("Directly return exception as too many concurrent query requests for project:" + project);
+ logger.warn("Directly return exception as too many concurrent query requests for project: {}", project);
throw new BadRequestException(msg.getQUERY_TOO_MANY_RUNNING());
}
}
diff --git a/server-base/src/main/java/org/apache/kylin/rest/util/TableauInterceptor.java b/server-base/src/main/java/org/apache/kylin/rest/util/TableauInterceptor.java
index 49b7502..2066c68 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/util/TableauInterceptor.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/util/TableauInterceptor.java
@@ -32,6 +32,10 @@ public class TableauInterceptor {
protected static final Logger logger = LoggerFactory.getLogger(TableauInterceptor.class);
+ private TableauInterceptor() {
+ throw new IllegalStateException("Class TableauInterceptor is an utility class !");
+ }
+
private static String[] tableauTestQueries = new String[] { "SELECT 1", //
"CREATE LOCAL TEMPORARY TABLE \"XTableau_B_Connect\" ( \"COL\" INTEGER ) ON COMMIT PRESERVE ROWS", //
"DROP TABLE \"XTableau_B_Connect\"", //
diff --git a/source-kafka/src/main/java/org/apache/kylin/source/kafka/util/KafkaClient.java b/source-kafka/src/main/java/org/apache/kylin/source/kafka/util/KafkaClient.java
index bd8f90e..a0cb59a 100644
--- a/source-kafka/src/main/java/org/apache/kylin/source/kafka/util/KafkaClient.java
+++ b/source-kafka/src/main/java/org/apache/kylin/source/kafka/util/KafkaClient.java
@@ -39,6 +39,10 @@ import java.util.Properties;
*/
public class KafkaClient {
+ private KafkaClient() {
+ throw new IllegalStateException("Class KafkaClient is an utility class !");
+ }
+
public static KafkaConsumer getKafkaConsumer(String brokers, String consumerGroup, Properties properties) {
Properties props = constructDefaultKafkaConsumerProperties(brokers, consumerGroup, properties);
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
diff --git a/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java b/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
index 2e357da..842beb2 100644
--- a/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
+++ b/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
@@ -31,6 +31,11 @@ import java.net.UnknownHostException;
import java.util.Map;
public class ToolUtil {
+
+ private ToolUtil() {
+ throw new IllegalStateException("Class ToolUtil is an utility class !");
+ }
+
public static String getConfFolder() {
final String CONF = "conf";
String path = System.getProperty(KylinConfig.KYLIN_CONF);