This is an automated email from the ASF dual-hosted git repository.

shaofengshi 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 796fede  KYLIN-3597 Improve code smell
796fede is described below

commit 796fede6740dd90e624a3d79791625176b504b0a
Author: hit-lacus <hit_la...@126.com>
AuthorDate: Sat Sep 29 13:55:52 2018 +0800

    KYLIN-3597 Improve code smell
---
 .../persistence/IdentifierFileResourceStore.java   |   4 -
 .../apache/kylin/gridtable/GTFilterScanner.java    | 105 ++++++++++-----------
 .../java/org/apache/kylin/gridtable/GTUtil.java    |   8 +-
 .../gtrecord/SortedIteratorMergerWithLimit.java    |   2 +-
 .../kylin/storage/gtrecord/DictGridTableTest.java  |  10 +-
 .../kylin/rest/controller/CubeController.java      |  10 +-
 6 files changed, 66 insertions(+), 73 deletions(-)

diff --git 
a/core-common/src/main/java/org/apache/kylin/common/persistence/IdentifierFileResourceStore.java
 
b/core-common/src/main/java/org/apache/kylin/common/persistence/IdentifierFileResourceStore.java
index e516bd1..9475e44 100644
--- 
a/core-common/src/main/java/org/apache/kylin/common/persistence/IdentifierFileResourceStore.java
+++ 
b/core-common/src/main/java/org/apache/kylin/common/persistence/IdentifierFileResourceStore.java
@@ -17,8 +17,6 @@
 */
 package org.apache.kylin.common.persistence;
 
-import java.io.File;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.StorageURL;
 import org.slf4j.Logger;
@@ -38,8 +36,6 @@ public class IdentifierFileResourceStore extends 
FileResourceStore {
 
     private static final String IFILE_SCHEME = "ifile";
 
-    private File root;
-
     public IdentifierFileResourceStore(KylinConfig kylinConfig) throws 
Exception {
         super(kylinConfig);
     }
diff --git 
a/core-cube/src/main/java/org/apache/kylin/gridtable/GTFilterScanner.java 
b/core-cube/src/main/java/org/apache/kylin/gridtable/GTFilterScanner.java
index 12074bd..89d29e3 100644
--- a/core-cube/src/main/java/org/apache/kylin/gridtable/GTFilterScanner.java
+++ b/core-cube/src/main/java/org/apache/kylin/gridtable/GTFilterScanner.java
@@ -72,75 +72,74 @@ public class GTFilterScanner extends GTForwardingScanner {
 
     @Override
     public Iterator<GTRecord> iterator() {
-        return new Iterator<GTRecord>() {
-
-            private Iterator<GTRecord> inputIterator = delegated.iterator();
-            private FilterResultCache resultCache = new 
FilterResultCache(getInfo(), filter);
-
-            @Override
-            public boolean hasNext() {
-                if (next != null)
-                    return true;
-
-                while (inputIterator.hasNext()) {
-                    next = inputIterator.next();
-                    inputRowCount++;
-                    if (!evaluate()) {
-                        continue;
-                    }
-                    return true;
-                }
-                next = null;
-                return false;
-            }
+        return new GTFilterScannerIterator();
+    }
 
-            private boolean evaluate() {
-                if (checker != null && checker.shouldBypass(next)) {
-                    return false;
-                }
+    private class GTFilterScannerIterator implements Iterator<GTRecord> {
+        private Iterator<GTRecord> inputIterator = delegated.iterator();
+        private FilterResultCache resultCache = new 
FilterResultCache(getInfo(), filter);
 
-                if (filter == null)
-                    return true;
+        @Override
+        public boolean hasNext() {
+            if (next != null)
+                return true;
 
-                // 'next' and 'oneTuple' are referring to the same record
-                boolean[] cachedResult = resultCache.checkCache(next);
-                if (cachedResult != null)
-                    return cachedResult[0];
+            while (inputIterator.hasNext()) {
+                next = inputIterator.next();
+                inputRowCount++;
+                if (!evaluate()) {
+                    continue;
+                }
+                return true;
+            }
+            next = null;
+            return false;
+        }
 
-                boolean result = filter.evaluate(oneTuple, filterCodeSystem);
-                resultCache.setLastResult(result);
-                return result;
+        private boolean evaluate() {
+            if (checker != null && checker.shouldBypass(next)) {
+                return false;
             }
 
-            @Override
-            public GTRecord next() {
-                // fetch next record
-                if (next == null) {
-                    hasNext();
-                    if (next == null)
-                        throw new NoSuchElementException();
-                }
+            if (filter == null)
+                return true;
 
-                GTRecord result = next;
-                next = null;
-                return result;
-            }
+            // 'next' and 'oneTuple' are referring to the same record
+            boolean[] cachedResult = resultCache.checkCache(next);
+            if (cachedResult != null)
+                return cachedResult[0];
+
+            boolean result = filter.evaluate(oneTuple, filterCodeSystem);
+            resultCache.setLastResult(result);
+            return result;
+        }
 
-            @Override
-            public void remove() {
-                throw new UnsupportedOperationException();
+        @Override
+        public GTRecord next() {
+            // fetch next record
+            if (next == null) {
+                hasNext();
+                if (next == null)
+                    throw new NoSuchElementException();
             }
 
-        };
+            GTRecord result = next;
+            next = null;
+            return result;
+        }
+
+        @Override
+        public void remove() {
+            throw new UnsupportedOperationException();
+        }
     }
 
     // cache the last one input and result, can reuse because rowkey are 
ordered, and same input could come in small group
     public static class FilterResultCache {
         static final int CHECKPOINT = 10000;
         static final double HIT_RATE_THRESHOLD = 0.5;
-        public static boolean ENABLED = true; // enable cache by default
-
-        public boolean enabled = ENABLED;
+        public static boolean DEFAULT_OPTION = true; // enable cache by default
+        private boolean enabled = DEFAULT_OPTION;
         ImmutableBitSet colsInFilter;
         int count;
         int hit;
diff --git a/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java 
b/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java
index 62053a3..f03329b 100644
--- a/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java
+++ b/core-cube/src/main/java/org/apache/kylin/gridtable/GTUtil.java
@@ -46,6 +46,8 @@ import com.google.common.collect.Sets;
 
 public class GTUtil {
 
+    private GTUtil(){}
+
     static final TableDesc MOCKUP_TABLE = TableDesc.mockup("GT_MOCKUP_TABLE");
 
     static TblColRef tblColRef(int col, String datatype) {
@@ -185,14 +187,14 @@ public class GTUtil {
         protected final Set<TblColRef> unevaluatableColumnCollector;
         protected final Map<TblColRef, Integer> colMapping;
         protected final GTInfo info;
-        protected final boolean encodeConstants;
+        protected final boolean useEncodeConstants;
 
         public GTConvertDecorator(Set<TblColRef> unevaluatableColumnCollector, 
Map<TblColRef, Integer> colMapping,
                 GTInfo info, boolean encodeConstants) {
             this.unevaluatableColumnCollector = unevaluatableColumnCollector;
             this.colMapping = colMapping;
             this.info = info;
-            this.encodeConstants = encodeConstants;
+            this.useEncodeConstants = encodeConstants;
             buf = ByteBuffer.allocate(info.getMaxColumnLength());
         }
 
@@ -228,7 +230,7 @@ public class GTUtil {
             }
 
             // encode constants
-            if (encodeConstants && filter instanceof CompareTupleFilter) {
+            if (useEncodeConstants && filter instanceof CompareTupleFilter) {
                 return encodeConstants((CompareTupleFilter) filter);
             }
 
diff --git 
a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SortedIteratorMergerWithLimit.java
 
b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SortedIteratorMergerWithLimit.java
index b54cb2f..9baee14 100644
--- 
a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SortedIteratorMergerWithLimit.java
+++ 
b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/SortedIteratorMergerWithLimit.java
@@ -44,7 +44,6 @@ import com.google.common.base.Preconditions;
  */
 public class SortedIteratorMergerWithLimit<E extends Cloneable> extends 
SortedIteratorMerger<E> {
     private int limit;
-    private Comparator<E> comparator;
 
     public SortedIteratorMergerWithLimit(Iterator<Iterator<E>> shardSubsets, 
int limit, Comparator<E> comparator) {
         super(shardSubsets, comparator);
@@ -52,6 +51,7 @@ public class SortedIteratorMergerWithLimit<E extends 
Cloneable> extends SortedIt
         this.comparator = comparator;
     }
 
+    @Override
     public Iterator<E> getIterator() {
         return new MergedIteratorWithLimit(limit, comparator);
     }
diff --git 
a/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
 
b/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
index 08bcb65..14c5eef 100644
--- 
a/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
+++ 
b/core-storage/src/test/java/org/apache/kylin/storage/gtrecord/DictGridTableTest.java
@@ -369,13 +369,13 @@ public class DictGridTableTest extends 
LocalFileMetadataTestCase {
         CompareTupleFilter fComp2 = compare(info.colRef(1), 
FilterOperatorEnum.GT, enc(info, 1, "10"));
         LogicalTupleFilter filter = and(fComp1, fComp2);
 
-        FilterResultCache.ENABLED = false;
+        FilterResultCache.DEFAULT_OPTION = false;
         testFilterScannerPerfInner(table, info, filter);
-        FilterResultCache.ENABLED = true;
+        FilterResultCache.DEFAULT_OPTION = true;
         testFilterScannerPerfInner(table, info, filter);
-        FilterResultCache.ENABLED = false;
+        FilterResultCache.DEFAULT_OPTION = false;
         testFilterScannerPerfInner(table, info, filter);
-        FilterResultCache.ENABLED = true;
+        FilterResultCache.DEFAULT_OPTION = true;
         testFilterScannerPerfInner(table, info, filter);
     }
 
@@ -393,7 +393,7 @@ public class DictGridTableTest extends 
LocalFileMetadataTestCase {
         scanner.close();
         long end = System.currentTimeMillis();
         System.out.println(
-                (end - start) + "ms with filter cache enabled=" + 
FilterResultCache.ENABLED + ", " + i + " rows");
+                (end - start) + "ms with filter cache enabled=" + 
FilterResultCache.DEFAULT_OPTION + ", " + i + " rows");
     }
 
     @Test
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 a78f26a..b76f7b9 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
@@ -299,7 +299,7 @@ public class CubeController extends BasicController {
     @RequestMapping(value = "/{cubeName}/refresh_lookup", method = { 
RequestMethod.PUT }, produces = {
             "application/json" })
     @ResponseBody
-    public JobInstance reBuildLookupSnapshot(@PathVariable String cubeName,
+    public JobInstance rebuildLookupSnapshot(@PathVariable String cubeName,
             @RequestBody LookupSnapshotBuildRequest request) {
         try {
             final CubeManager cubeMgr = cubeService.getCubeManager();
@@ -365,16 +365,12 @@ public class CubeController extends BasicController {
     @RequestMapping(value = "/{cubeName}/build2", method = { RequestMethod.PUT 
}, produces = { "application/json" })
     @ResponseBody
     public JobInstance build2(@PathVariable String cubeName, @RequestBody 
JobBuildRequest2 req) {
-        boolean existKafkaClient = false;
         try {
             Class<?> clazz = 
Class.forName("org.apache.kafka.clients.consumer.KafkaConsumer");
-            if (clazz != null) {
-                existKafkaClient = true;
+            if (clazz == null) {
+                throw new ClassNotFoundException();
             }
         } catch (ClassNotFoundException e) {
-            existKafkaClient = false;
-        }
-        if (!existKafkaClient) {
             throw new InternalErrorException("Could not find Kafka 
dependency");
         }
         return rebuild2(cubeName, req);

Reply via email to