You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2016/06/24 07:05:21 UTC

[43/50] kylin git commit: KYLIN-1816 More than one base KylinConfig exist in spring JVM

KYLIN-1816 More than one base KylinConfig exist in spring JVM


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

Branch: refs/heads/stream_m1
Commit: 1b0ece4a433ca3417d13a6d5fc7b5c1e503e341b
Parents: b514ae1
Author: Hongbin Ma <ma...@apache.org>
Authored: Thu Jun 23 12:04:32 2016 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Thu Jun 23 12:04:43 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    | 78 +++++++++++++-------
 .../org/apache/kylin/common/KylinConfigExt.java |  5 ++
 .../kylin/common/restclient/Broadcaster.java    |  2 +-
 .../common/util/SerializeToByteBuffer.java      | 44 +++++++++++
 .../java/org/apache/kylin/cube/CubeManager.java |  9 ++-
 .../apache/kylin/gridtable/GTScanRequest.java   | 13 +++-
 .../apache/kylin/dict/DictionaryManager.java    |  3 +
 .../kylin/dict/lookup/SnapshotManager.java      | 21 +++---
 .../org/apache/kylin/job/dao/ExecutableDao.java |  3 +
 .../kylin/job/execution/AbstractExecutable.java |  2 +-
 .../kylin/job/manager/ExecutableManager.java    |  3 +
 .../realization/RealizationRegistry.java        |  3 +
 .../kylin/storage/hybrid/HybridManager.java     |  2 +-
 .../engine/streaming/StreamingManager.java      |  2 +-
 .../kylin/source/kafka/KafkaConfigManager.java  |  2 +-
 15 files changed, 147 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
index b4b3c1b..a4024ae 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -61,22 +61,28 @@ public class KylinConfig extends KylinConfigBase {
     private static KylinConfig ENV_INSTANCE = null;
 
     public static KylinConfig getInstanceFromEnv() {
-        if (ENV_INSTANCE == null) {
-            try {
-                KylinConfig config = loadKylinConfig();
-                ENV_INSTANCE = config;
-            } catch (IllegalArgumentException e) {
-                throw new IllegalStateException("Failed to find KylinConfig ", e);
+        synchronized (KylinConfig.class) {
+            if (ENV_INSTANCE == null) {
+                try {
+                    KylinConfig config = loadKylinConfig();
+                    logger.info("Initialized a new KylinConfig from getInstanceFromEnv : " + System.identityHashCode(config));
+                    ENV_INSTANCE = config;
+                } catch (IllegalArgumentException e) {
+                    throw new IllegalStateException("Failed to find KylinConfig ", e);
+                }
             }
+            return ENV_INSTANCE;
         }
-        return ENV_INSTANCE;
     }
 
+    //Only used in test cases!!! 
     public static void destroyInstance() {
+        logger.info("Destory KylinConfig");
+        dumpStackTrace();
         ENV_INSTANCE = null;
     }
 
-    public static enum UriType {
+    public enum UriType {
         PROPERTIES_FILE, REST_ADDR, LOCAL_FOLDER
     }
 
@@ -150,12 +156,15 @@ public class KylinConfig extends KylinConfigBase {
     }
 
     public static void setKylinConfigFromInputStream(InputStream is) {
-        if (ENV_INSTANCE == null) {
-            try {
-                KylinConfig config = createKylinConfigFromInputStream(is);
-                ENV_INSTANCE = config;
-            } catch (IllegalArgumentException e) {
-                throw new IllegalStateException("Failed to find KylinConfig ", e);
+        synchronized (KylinConfig.class) {
+            if (ENV_INSTANCE == null) {
+                try {
+                    KylinConfig config = createKylinConfigFromInputStream(is);
+                    logger.info("Resetting ENV_INSTANCE by a input stream: " + System.identityHashCode(config));
+                    ENV_INSTANCE = config;
+                } catch (IllegalArgumentException e) {
+                    throw new IllegalStateException("Failed to find KylinConfig ", e);
+                }
             }
         }
     }
@@ -254,11 +263,11 @@ public class KylinConfig extends KylinConfigBase {
 
         return config;
     }
-    
+
     public static void setSandboxEnvIfPossible() {
         File dir1 = new File("../examples/test_case_data/sandbox");
         File dir2 = new File("../../kylin/examples/test_case_data/sandbox");
-        
+
         if (dir1.exists()) {
             logger.info("Setting sandbox env, KYLIN_CONF=" + dir1.getAbsolutePath());
             ClassUtil.addClasspath(dir1.getAbsolutePath());
@@ -272,11 +281,13 @@ public class KylinConfig extends KylinConfigBase {
 
     // ============================================================================
 
-    public KylinConfig() {
+    private KylinConfig() {
         super();
+        logger.info("New KylinConfig " + System.identityHashCode(this));
+        KylinConfig.dumpStackTrace();
     }
 
-    public KylinConfig(Properties props) {
+    protected KylinConfig(Properties props) {
         super(props);
     }
 
@@ -305,22 +316,19 @@ public class KylinConfig extends KylinConfigBase {
         }
     }
 
-    private KylinConfig base() {
-        if (this instanceof KylinConfigExt)
-            return ((KylinConfigExt) this).base;
-        else
-            return this;
+    public KylinConfig base() {
+        return this;
     }
-    
+
     private int superHashCode() {
         return super.hashCode();
     }
-    
+
     @Override
     public int hashCode() {
         return base().superHashCode();
     }
-    
+
     @Override
     public boolean equals(Object another) {
         if (!(another instanceof KylinConfig))
@@ -329,7 +337,6 @@ public class KylinConfig extends KylinConfigBase {
             return this.base() == ((KylinConfig) another).base();
     }
 
-
     public static void writeOverrideProperties(Properties properties) throws IOException {
         File propFile = getKylinProperties();
         File overrideFile = new File(propFile.getParentFile(), propFile.getName() + ".override");
@@ -362,4 +369,21 @@ public class KylinConfig extends KylinConfigBase {
         }
 
     }
+
+    private static void dumpStackTrace() {
+        Thread t = Thread.currentThread();
+        int maxStackTraceDepth = 20;
+        int current = 0;
+
+        StackTraceElement[] stackTrace = t.getStackTrace();
+        StringBuilder buf = new StringBuilder("");
+        buf.append("\n");
+        for (StackTraceElement e : stackTrace) {
+            if (++current > maxStackTraceDepth) {
+                break;
+            }
+            buf.append("\t").append("at ").append(e.toString()).append("\n");
+        }
+        logger.info(buf.toString());
+    }
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java
index 9443a4a..c5eb300 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigExt.java
@@ -68,4 +68,9 @@ public class KylinConfigExt extends KylinConfig {
         return result;
     }
 
+    @Override
+    public KylinConfig base() {
+        return this.base;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java b/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
index f8cd3be..b87cc25 100644
--- a/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
+++ b/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
@@ -62,7 +62,7 @@ public class Broadcaster {
             r = new Broadcaster(config);
             CACHE.put(config, r);
             if (CACHE.size() > 1) {
-                logger.warn("More than one cubemanager singleton exist");
+                logger.warn("More than one singleton exist");
             }
             return r;
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-common/src/main/java/org/apache/kylin/common/util/SerializeToByteBuffer.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/SerializeToByteBuffer.java b/core-common/src/main/java/org/apache/kylin/common/util/SerializeToByteBuffer.java
new file mode 100644
index 0000000..a2252a4
--- /dev/null
+++ b/core-common/src/main/java/org/apache/kylin/common/util/SerializeToByteBuffer.java
@@ -0,0 +1,44 @@
+/*
+ * 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.nio.BufferOverflowException;
+import java.nio.ByteBuffer;
+
+public class SerializeToByteBuffer {
+
+    public interface IWriter {
+        void write(ByteBuffer byteBuffer) throws BufferOverflowException;
+    }
+
+    public static ByteBuffer retrySerialize(IWriter writer) {
+        int bufferSize = BytesSerializer.SERIALIZE_BUFFER_SIZE;
+
+        while (true) {
+            try {
+                ByteBuffer byteBuffer = ByteBuffer.allocate(bufferSize);
+                writer.write(byteBuffer);
+                return byteBuffer;
+            } catch (BufferOverflowException boe) {
+                System.out.println("Buffer size cannot hold the raw scans, resizing to 4 times : " + bufferSize);
+                bufferSize *= 4;
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
----------------------------------------------------------------------
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 caa2765..b62bc05 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
@@ -101,7 +101,10 @@ public class CubeManager implements IRealizationProvider {
                 r = new CubeManager(config);
                 CACHE.put(config, r);
                 if (CACHE.size() > 1) {
-                    logger.warn("More than one cubemanager singleton exist");
+                    logger.warn("More than one singleton exist");
+                    for (KylinConfig kylinConfig : CACHE.keySet()) {
+                        logger.warn("type: " + kylinConfig.getClass() + " reference: " + System.identityHashCode(kylinConfig.base()));
+                    }
                 }
                 return r;
             } catch (IOException e) {
@@ -149,7 +152,7 @@ public class CubeManager implements IRealizationProvider {
         }
         return null;
     }
-    
+
     /**
      * Get related Cubes by cubedesc name. By default, the desc name will be
      * translated into upper case.
@@ -411,7 +414,7 @@ public class CubeManager implements IRealizationProvider {
 
     public CubeSegment appendSegment(CubeInstance cube, long startDate, long endDate, long startOffset, long endOffset, boolean strictChecking) throws IOException {
 
-        if(strictChecking)
+        if (strictChecking)
             checkNoBuildingSegment(cube);
 
         if (cube.getDescriptor().getModel().getPartitionDesc().isPartitioned()) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRequest.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRequest.java b/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRequest.java
index d520efa..5e1e131 100644
--- a/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRequest.java
+++ b/core-cube/src/main/java/org/apache/kylin/gridtable/GTScanRequest.java
@@ -19,6 +19,7 @@
 package org.apache.kylin.gridtable;
 
 import java.io.IOException;
+import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
 import java.util.List;
@@ -29,6 +30,7 @@ import org.apache.kylin.common.util.ByteArray;
 import org.apache.kylin.common.util.BytesSerializer;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.ImmutableBitSet;
+import org.apache.kylin.common.util.SerializeToByteBuffer;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.model.TblColRef;
 
@@ -270,6 +272,16 @@ public class GTScanRequest {
         return "GTScanRequest [range=" + ranges + ", columns=" + columns + ", filterPushDown=" + filterPushDown + ", aggrGroupBy=" + aggrGroupBy + ", aggrMetrics=" + aggrMetrics + ", aggrMetricsFuncs=" + Arrays.toString(aggrMetricsFuncs) + "]";
     }
 
+    public byte[] toByteArray() {
+        ByteBuffer byteBuffer = SerializeToByteBuffer.retrySerialize(new SerializeToByteBuffer.IWriter() {
+            @Override
+            public void write(ByteBuffer byteBuffer) throws BufferOverflowException {
+                GTScanRequest.serializer.serialize(GTScanRequest.this, byteBuffer);
+            }
+        });
+        return Arrays.copyOf(byteBuffer.array(), byteBuffer.position());
+    }
+
     public static final BytesSerializer<GTScanRequest> serializer = new BytesSerializer<GTScanRequest>() {
         @Override
         public void serialize(GTScanRequest value, ByteBuffer out) {
@@ -340,7 +352,6 @@ public class GTScanRequest {
             }
             return new GTRecord(sInfo, sCols);
         }
-        
 
     };
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
----------------------------------------------------------------------
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
index 5668bd8..6a1c22c 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
@@ -63,6 +63,9 @@ public class DictionaryManager {
                 if (r == null) {
                     r = new DictionaryManager(config);
                     CACHE.put(config, r);
+                    if (CACHE.size() > 1) {
+                        logger.warn("More than one singleton exist");
+                    }
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
----------------------------------------------------------------------
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
index b9c17dd..b4b8011 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
@@ -20,7 +20,7 @@ package org.apache.kylin.dict.lookup;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.NavigableSet;
+import java.util.NavigableSet;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.kylin.common.KylinConfig;
@@ -45,12 +45,15 @@ public class SnapshotManager {
     public static SnapshotManager getInstance(KylinConfig config) {
         SnapshotManager r = SERVICE_CACHE.get(config);
         if (r == null) {
-            synchronized (SnapshotManager.class) {
-                r = SERVICE_CACHE.get(config);
-                if (r == null) {
-                    r = new SnapshotManager(config);
-                    SERVICE_CACHE.put(config, r);
-                }
+            synchronized (SnapshotManager.class) {
+                r = SERVICE_CACHE.get(config);
+                if (r == null) {
+                    r = new SnapshotManager(config);
+                    SERVICE_CACHE.put(config, r);
+                    if (SERVICE_CACHE.size() > 1) {
+                        logger.warn("More than one singleton exist");
+                    }
+                }
             }
         }
         return r;
@@ -140,7 +143,7 @@ public class SnapshotManager {
     private String checkDupByInfo(SnapshotTable snapshot) throws IOException {
         ResourceStore store = MetadataManager.getInstance(this.config).getStore();
         String resourceDir = snapshot.getResourceDir();
-        NavigableSet<String> existings = store.listResources(resourceDir);
+        NavigableSet<String> existings = store.listResources(resourceDir);
         if (existings == null)
             return null;
 
@@ -158,7 +161,7 @@ public class SnapshotManager {
     private String checkDupByContent(SnapshotTable snapshot) throws IOException {
         ResourceStore store = MetadataManager.getInstance(this.config).getStore();
         String resourceDir = snapshot.getResourceDir();
-        NavigableSet<String> existings = store.listResources(resourceDir);
+        NavigableSet<String> existings = store.listResources(resourceDir);
         if (existings == null)
             return null;
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
----------------------------------------------------------------------
diff --git a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java b/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
index 58f845d..8808a56 100644
--- a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
+++ b/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
@@ -55,6 +55,9 @@ public class ExecutableDao {
                 if (r == null) {
                     r = new ExecutableDao(config);
                     CACHE.put(config, r);
+                    if (CACHE.size() > 1) {
+                        logger.warn("More than one singleton exist");
+                    }
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
----------------------------------------------------------------------
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 778763c..aee71f7 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
@@ -113,7 +113,7 @@ public abstract class AbstractExecutable implements Executable, Idempotent {
             try {
                 result = doWork(executableContext);
             } catch (Throwable e) {
-                logger.error("error running Executable", e);
+                logger.error("error running Executable: " + this.toString());
                 exception = e;
             }
             retry++;

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
----------------------------------------------------------------------
diff --git a/core-job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java b/core-job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
index 5138fb4..7b4e0f0 100644
--- a/core-job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
+++ b/core-job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
@@ -63,6 +63,9 @@ public class ExecutableManager {
                 if (r == null) {
                     r = new ExecutableManager(config);
                     CACHE.put(config, r);
+                    if (CACHE.size() > 1) {
+                        logger.warn("More than one singleton exist");
+                    }
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
index e5b0033..b447531 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
@@ -54,6 +54,9 @@ public class RealizationRegistry {
             try {
                 r = new RealizationRegistry(config);
                 CACHE.put(config, r);
+                if (CACHE.size() > 1) {
+                    logger.warn("More than one singleton exist");
+                }
                 return r;
             } catch (IOException e) {
                 throw new IllegalStateException("Failed to init CubeManager from " + config, e);

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
----------------------------------------------------------------------
diff --git a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java b/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
index 5f16b6b..e43331e 100644
--- a/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
+++ b/core-storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
@@ -59,7 +59,7 @@ public class HybridManager implements IRealizationProvider {
                 r = new HybridManager(config);
                 CACHE.put(config, r);
                 if (CACHE.size() > 1) {
-                    logger.warn("More than one Hybrid Manager singleton exist");
+                    logger.warn("More than one singleton exist");
                 }
                 return r;
             } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/StreamingManager.java
----------------------------------------------------------------------
diff --git a/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/StreamingManager.java b/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/StreamingManager.java
index f652762..b45e313 100644
--- a/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/StreamingManager.java
+++ b/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/StreamingManager.java
@@ -95,7 +95,7 @@ public class StreamingManager {
                 r = new StreamingManager(config);
                 CACHE.put(config, r);
                 if (CACHE.size() > 1) {
-                    logger.warn("More than one streamingManager singleton exist");
+                    logger.warn("More than one singleton exist");
                 }
                 return r;
             } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/1b0ece4a/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaConfigManager.java
----------------------------------------------------------------------
diff --git a/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaConfigManager.java b/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaConfigManager.java
index 1d07f23..d594873 100644
--- a/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaConfigManager.java
+++ b/source-kafka/src/main/java/org/apache/kylin/source/kafka/KafkaConfigManager.java
@@ -96,7 +96,7 @@ public class KafkaConfigManager {
                 r = new KafkaConfigManager(config);
                 CACHE.put(config, r);
                 if (CACHE.size() > 1) {
-                    logger.warn("More than one KafkaConfigManager singleton exist");
+                    logger.warn("More than one singleton exist");
                 }
                 return r;
             } catch (IOException e) {