You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ja...@apache.org on 2017/08/19 01:53:10 UTC

[2/3] carbondata git commit: [Review][CARBONDATA-1386] fixed findbugs errors in carbondata-core

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/keygenerator/columnar/impl/MultiDimKeyVarLengthVariableSplitGenerator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/keygenerator/columnar/impl/MultiDimKeyVarLengthVariableSplitGenerator.java b/core/src/main/java/org/apache/carbondata/core/keygenerator/columnar/impl/MultiDimKeyVarLengthVariableSplitGenerator.java
index cb52045..1ed4577 100644
--- a/core/src/main/java/org/apache/carbondata/core/keygenerator/columnar/impl/MultiDimKeyVarLengthVariableSplitGenerator.java
+++ b/core/src/main/java/org/apache/carbondata/core/keygenerator/columnar/impl/MultiDimKeyVarLengthVariableSplitGenerator.java
@@ -110,29 +110,6 @@ public class MultiDimKeyVarLengthVariableSplitGenerator extends MultiDimKeyVarLe
       dimBlockArray[j] = convertToArray(dimBlockSet[j]);
     }
 
-    int[][] splitDimArrayLocalIndexes = new int[splitDimArray.length][];
-    for (int j = 0; j < splitDimArrayLocalIndexes.length; j++) {
-      splitDimArrayLocalIndexes[j] = splitDimArray[j].length > 0 ?
-          new int[] { 0, splitDimArray[j][1] - splitDimArray[j][0] } :
-          new int[0];
-    }
-
-    int[][][] byteRangesForDims = new int[byteRangesForKeys.length][][];
-    for (int j = 0; j < byteRangesForKeys.length; j++) {
-      if (dimBlockArray[j].length > 1) {
-        int[] bArray1 = splitDimArrayLocalIndexes[dimBlockArray[j][0]];
-        byteRangesForDims[j] = new int[2][2];
-        byteRangesForDims[j][0] =
-            new int[] { bArray1[bArray1.length - 1], bArray1[bArray1.length - 1] };
-        byteRangesForDims[j][1] = new int[] { 0,
-            (byteRangesForKeys[j][byteRangesForKeys[j].length - 1] - byteRangesForKeys[j][0]) - 1 };
-      } else {
-        byteRangesForDims[j] = new int[1][1];
-        int[] bArray1 = splitDimArray[dimBlockArray[j][0]];
-        byteRangesForDims[j][0] = new int[] { byteRangesForKeys[j][0] - bArray1[0],
-            byteRangesForKeys[j][1] - bArray1[0] };
-      }
-    }
     blockKeySize = new int[splitDimArray.length];
 
     for (int j = 0; j < blockKeySize.length; j++) {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java b/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java
index 9fc2c25..0d7cb6c 100644
--- a/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java
+++ b/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/DateDirectDictionaryGenerator.java
@@ -139,7 +139,7 @@ public class DateDirectDictionaryGenerator implements DirectDictionaryGenerator
   private int generateDirectSurrogateKeyForNonTimestampType(String memberStr) {
     long timeValue = -1;
     try {
-      timeValue = Long.valueOf(memberStr) / 1000;
+      timeValue = Long.parseLong(memberStr) / 1000;
     } catch (NumberFormatException e) {
       if (LOGGER.isDebugEnabled()) {
         LOGGER.debug(

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/TimeStampDirectDictionaryGenerator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/TimeStampDirectDictionaryGenerator.java b/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/TimeStampDirectDictionaryGenerator.java
index 5c7ba07..6a0b9e6 100644
--- a/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/TimeStampDirectDictionaryGenerator.java
+++ b/core/src/main/java/org/apache/carbondata/core/keygenerator/directdictionary/timestamp/TimeStampDirectDictionaryGenerator.java
@@ -199,7 +199,7 @@ public class TimeStampDirectDictionaryGenerator implements DirectDictionaryGener
   private int generateDirectSurrogateKeyForNonTimestampType(String memberStr) {
     long timeValue = -1;
     try {
-      timeValue = Long.valueOf(memberStr) / 1000;
+      timeValue = Long.parseLong(memberStr) / 1000;
     } catch (NumberFormatException e) {
       if (LOGGER.isDebugEnabled()) {
         LOGGER.debug(

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/locks/HdfsFileLock.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/locks/HdfsFileLock.java b/core/src/main/java/org/apache/carbondata/core/locks/HdfsFileLock.java
index aa24e33..752c70d 100644
--- a/core/src/main/java/org/apache/carbondata/core/locks/HdfsFileLock.java
+++ b/core/src/main/java/org/apache/carbondata/core/locks/HdfsFileLock.java
@@ -45,7 +45,7 @@ public class HdfsFileLock extends AbstractCarbonLock {
 
   private DataOutputStream dataOutputStream;
 
-  public static String tmpPath;
+  private static String tmpPath;
 
   static {
     Configuration conf = new Configuration(true);

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/locks/ZooKeeperLocking.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/locks/ZooKeeperLocking.java b/core/src/main/java/org/apache/carbondata/core/locks/ZooKeeperLocking.java
index 24bc5b0..5e83aa4 100644
--- a/core/src/main/java/org/apache/carbondata/core/locks/ZooKeeperLocking.java
+++ b/core/src/main/java/org/apache/carbondata/core/locks/ZooKeeperLocking.java
@@ -74,6 +74,14 @@ public class ZooKeeperLocking extends AbstractCarbonLock {
         lockFile);
   }
 
+  public static void initialize() {
+    String zooKeeperUrl =
+        CarbonProperties.getInstance().getProperty(CarbonCommonConstants.ZOOKEEPER_URL);
+    if (null == zk) {
+      zk = ZookeeperInit.getInstance(zooKeeperUrl).getZookeeper();
+    }
+  }
+
   /**
    * @param lockLocation
    * @param lockFile
@@ -82,9 +90,7 @@ public class ZooKeeperLocking extends AbstractCarbonLock {
     this.lockName = lockFile;
     this.tableIdFolder = zooKeeperLocation + CarbonCommonConstants.FILE_SEPARATOR + lockLocation;
 
-    String zooKeeperUrl =
-        CarbonProperties.getInstance().getProperty(CarbonCommonConstants.ZOOKEEPER_URL);
-    zk = ZookeeperInit.getInstance(zooKeeperUrl).getZookeeper();
+    initialize();
 
     this.lockTypeFolder = zooKeeperLocation + CarbonCommonConstants.FILE_SEPARATOR + lockLocation
         + CarbonCommonConstants.FILE_SEPARATOR + lockFile;

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/memory/CarbonUnsafe.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/memory/CarbonUnsafe.java b/core/src/main/java/org/apache/carbondata/core/memory/CarbonUnsafe.java
index 88e108c..74343f5 100644
--- a/core/src/main/java/org/apache/carbondata/core/memory/CarbonUnsafe.java
+++ b/core/src/main/java/org/apache/carbondata/core/memory/CarbonUnsafe.java
@@ -40,7 +40,7 @@ public final class CarbonUnsafe {
   public static final boolean ISLITTLEENDIAN =
       ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN);
 
-  public static Unsafe unsafe;
+  private static Unsafe unsafe;
 
   static {
     try {
@@ -66,4 +66,8 @@ public final class CarbonUnsafe {
       DOUBLE_ARRAY_OFFSET = 0;
     }
   }
+
+  public static Unsafe getUnsafe() {
+    return unsafe;
+  }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/memory/IntPointerBuffer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/memory/IntPointerBuffer.java b/core/src/main/java/org/apache/carbondata/core/memory/IntPointerBuffer.java
index dadb1e4..5cd8e8d 100644
--- a/core/src/main/java/org/apache/carbondata/core/memory/IntPointerBuffer.java
+++ b/core/src/main/java/org/apache/carbondata/core/memory/IntPointerBuffer.java
@@ -67,7 +67,7 @@ public class IntPointerBuffer {
     assert rowId >= 0 : "rowId (" + rowId + ") should >= 0";
     assert rowId < length : "rowId (" + rowId + ") should < length (" + length + ")";
     if (pointerBlock == null) {
-      return CarbonUnsafe.unsafe.getInt(pointerMemoryBlock.getBaseObject(),
+      return CarbonUnsafe.getUnsafe().getInt(pointerMemoryBlock.getBaseObject(),
           pointerMemoryBlock.getBaseOffset() + (rowId << 2));
     }
     return pointerBlock[rowId];
@@ -78,7 +78,7 @@ public class IntPointerBuffer {
       pointerMemoryBlock =
           UnsafeSortMemoryManager.allocateMemoryWithRetry(this.taskId, pointerBlock.length * 4);
       for (int i = 0; i < pointerBlock.length; i++) {
-        CarbonUnsafe.unsafe
+        CarbonUnsafe.getUnsafe()
             .putInt(pointerMemoryBlock.getBaseObject(), pointerMemoryBlock.getBaseOffset() + i * 4,
                 pointerBlock[i]);
       }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/memory/MemoryBlock.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/memory/MemoryBlock.java b/core/src/main/java/org/apache/carbondata/core/memory/MemoryBlock.java
index ab9b3d4..74136c1 100644
--- a/core/src/main/java/org/apache/carbondata/core/memory/MemoryBlock.java
+++ b/core/src/main/java/org/apache/carbondata/core/memory/MemoryBlock.java
@@ -29,13 +29,6 @@ public class MemoryBlock extends MemoryLocation {
 
   private final long length;
 
-  /**
-   * Optional page number; used when this MemoryBlock represents a page allocated by a
-   * TaskMemoryManager. This field is public so that it can be modified by the TaskMemoryManager,
-   * which lives in a different package.
-   */
-  public int pageNumber = -1;
-
   public MemoryBlock(@Nullable Object obj, long offset, long length) {
     super(obj, offset);
     this.length = length;

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryAllocator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryAllocator.java b/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryAllocator.java
index db38ff2..fcb0b88 100644
--- a/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryAllocator.java
+++ b/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryAllocator.java
@@ -25,9 +25,9 @@ public class UnsafeMemoryAllocator implements MemoryAllocator {
 
   @Override
   public MemoryBlock allocate(long size) throws OutOfMemoryError {
-    long address = CarbonUnsafe.unsafe.allocateMemory(size);
+    long address = CarbonUnsafe.getUnsafe().allocateMemory(size);
     // initializing memory with zero
-    CarbonUnsafe.unsafe.setMemory(null, address, size, (byte) 0);
+    CarbonUnsafe.getUnsafe().setMemory(null, address, size, (byte) 0);
     return new MemoryBlock(null, address, size);
   }
 
@@ -35,6 +35,6 @@ public class UnsafeMemoryAllocator implements MemoryAllocator {
   public void free(MemoryBlock memory) {
     assert (memory.obj == null) :
       "baseObject not null; are you trying to use the off-heap allocator to free on-heap memory?";
-    CarbonUnsafe.unsafe.freeMemory(memory.offset);
+    CarbonUnsafe.getUnsafe().freeMemory(memory.offset);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryManager.java b/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryManager.java
index d433b5e..1190d56 100644
--- a/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryManager.java
+++ b/core/src/main/java/org/apache/carbondata/core/memory/UnsafeMemoryManager.java
@@ -114,11 +114,9 @@ public class UnsafeMemoryManager {
             - memoryUsed));
   }
 
-  public void freeMemoryAll(long taskId) {
+  public synchronized void freeMemoryAll(long taskId) {
     Set<MemoryBlock> memoryBlockSet = null;
-    synchronized (INSTANCE) {
-      memoryBlockSet = taskIdToMemoryBlockMap.remove(taskId);
-    }
+    memoryBlockSet = taskIdToMemoryBlockMap.remove(taskId);
     long occuppiedMemory = 0;
     if (null != memoryBlockSet) {
       Iterator<MemoryBlock> iterator = memoryBlockSet.iterator();
@@ -129,10 +127,8 @@ public class UnsafeMemoryManager {
         allocator.free(memoryBlock);
       }
     }
-    synchronized (INSTANCE) {
-      memoryUsed -= occuppiedMemory;
-      memoryUsed = memoryUsed < 0 ? 0 : memoryUsed;
-    }
+    memoryUsed -= occuppiedMemory;
+    memoryUsed = memoryUsed < 0 ? 0 : memoryUsed;
     if (LOGGER.isDebugEnabled()) {
       LOGGER.debug(
           "Freeing memory of size: " + occuppiedMemory + ": Current available memory is: " + (

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/memory/UnsafeSortMemoryManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/memory/UnsafeSortMemoryManager.java b/core/src/main/java/org/apache/carbondata/core/memory/UnsafeSortMemoryManager.java
index d975cd4..b4a200a 100644
--- a/core/src/main/java/org/apache/carbondata/core/memory/UnsafeSortMemoryManager.java
+++ b/core/src/main/java/org/apache/carbondata/core/memory/UnsafeSortMemoryManager.java
@@ -152,11 +152,9 @@ public class UnsafeSortMemoryManager {
    * when in case of task failure we need to clear all the memory occupied
    * @param taskId
    */
-  public void freeMemoryAll(long taskId) {
+  public synchronized void freeMemoryAll(long taskId) {
     Set<MemoryBlock> memoryBlockSet = null;
-    synchronized (INSTANCE) {
-      memoryBlockSet = taskIdToMemoryBlockMap.remove(taskId);
-    }
+    memoryBlockSet = taskIdToMemoryBlockMap.remove(taskId);
     long occuppiedMemory = 0;
     if (null != memoryBlockSet) {
       Iterator<MemoryBlock> iterator = memoryBlockSet.iterator();
@@ -167,10 +165,8 @@ public class UnsafeSortMemoryManager {
         allocator.free(memoryBlock);
       }
     }
-    synchronized (INSTANCE) {
-      memoryUsed -= occuppiedMemory;
-      memoryUsed = memoryUsed < 0 ? 0 : memoryUsed;
-    }
+    memoryUsed -= occuppiedMemory;
+    memoryUsed = memoryUsed < 0 ? 0 : memoryUsed;
     if (LOGGER.isDebugEnabled()) {
       LOGGER.debug(
           "Freeing memory of size: " + occuppiedMemory + ": Current available memory is: " + (

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/metadata/ColumnPageCodecMeta.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/ColumnPageCodecMeta.java b/core/src/main/java/org/apache/carbondata/core/metadata/ColumnPageCodecMeta.java
index 591899e..54bc2ce 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/ColumnPageCodecMeta.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/ColumnPageCodecMeta.java
@@ -194,6 +194,8 @@ public class ColumnPageCodecMeta extends ValueEncoderMeta implements Serializabl
         buffer.putInt(getScale());
         buffer.putInt(getPrecision());
         break;
+      default:
+        throw new RuntimeException("Unexpected type: " + srcDataType);
     }
     buffer.putInt(getDecimal());
     buffer.put(getDataTypeSelected());

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalConverterFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalConverterFactory.java b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalConverterFactory.java
index 459eb24..0343e38 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalConverterFactory.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/datatype/DecimalConverterFactory.java
@@ -69,11 +69,9 @@ public final class DecimalConverterFactory {
 
     private ByteBuffer buffer = ByteBuffer.allocate(4);
 
-    private int precision;
     private int scale;
 
     public DecimalIntConverter(int precision, int scale) {
-      this.precision = precision;
       this.scale = scale;
     }
 
@@ -116,11 +114,9 @@ public final class DecimalConverterFactory {
 
     private ByteBuffer buffer = ByteBuffer.allocate(8);
 
-    private int precision;
     private int scale;
 
     public DecimalLongConverter(int precision, int scale) {
-      this.precision = precision;
       this.scale = scale;
     }
 
@@ -147,7 +143,6 @@ public final class DecimalConverterFactory {
 
   public class DecimalUnscaledConverter implements DecimalConverter {
 
-    private int precision;
 
     private int scale;
 
@@ -156,7 +151,6 @@ public final class DecimalConverterFactory {
     private byte[] decimalBuffer = new byte[minBytesForPrecision[38]];
 
     public DecimalUnscaledConverter(int precision, int scale) {
-      this.precision = precision;
       this.scale = scale;
       this.numBytes = minBytesForPrecision[precision];
     }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableInfo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableInfo.java b/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableInfo.java
index 2bd3198..0c807f6 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableInfo.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableInfo.java
@@ -185,15 +185,15 @@ public class TableInfo implements Serializable, Writable {
       return false;
     }
     TableInfo other = (TableInfo) obj;
-    if ((databaseName == null && other.databaseName != null) || (databaseName != null
-        && other.databaseName == null)) {
+    if (null == databaseName || null == other.databaseName) {
       return false;
     }
 
-    if ((tableUniqueName == null && other.tableUniqueName != null) || (tableUniqueName != null
-        && other.tableUniqueName == null)) {
+    if (null == tableUniqueName || null == other.tableUniqueName) {
       return false;
-    } else if (!tableUniqueName.equals(other.tableUniqueName)) {
+    }
+
+    if (!tableUniqueName.equals(other.tableUniqueName)) {
       return false;
     }
     return true;

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java b/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java
index e92563b..57e1544 100644
--- a/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/mutate/CarbonUpdateUtil.java
@@ -129,10 +129,6 @@ public class CarbonUpdateUtil {
 
         AbsoluteTableIdentifier absoluteTableIdentifier = table.getAbsoluteTableIdentifier();
 
-        CarbonTablePath carbonTablePath = CarbonStorePath
-                .getCarbonTablePath(absoluteTableIdentifier.getStorePath(),
-                        absoluteTableIdentifier.getCarbonTableIdentifier());
-
         // read the existing file if present and update the same.
         SegmentUpdateDetails[] oldDetails = segmentUpdateStatusManager
                 .getUpdateStatusDetails();

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedRawResultCollector.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedRawResultCollector.java b/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedRawResultCollector.java
index 479a684..ea89ce5 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedRawResultCollector.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedRawResultCollector.java
@@ -200,8 +200,7 @@ public class RestructureBasedRawResultCollector extends RawBasedResultCollector
           if (null != defaultValue) {
             defaultValueAsLong = ((Integer) defaultValue).longValue();
           } else {
-            defaultValueAsLong =
-                new Integer(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY).longValue();
+            defaultValueAsLong = (long)CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY;
           }
           keyArrayWithNewAddedColumns[newKeyArrayIndex++] = defaultValueAsLong;
         }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/complextypes/ComplexQueryType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/complextypes/ComplexQueryType.java b/core/src/main/java/org/apache/carbondata/core/scan/complextypes/ComplexQueryType.java
index 080d577..2274186 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/complextypes/ComplexQueryType.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/complextypes/ComplexQueryType.java
@@ -20,12 +20,9 @@ package org.apache.carbondata.core.scan.complextypes;
 import java.io.IOException;
 
 import org.apache.carbondata.core.datastore.chunk.impl.DimensionRawColumnChunk;
-import org.apache.carbondata.core.scan.filter.GenericQueryType;
 import org.apache.carbondata.core.scan.processor.BlocksChunkHolder;
 
 public class ComplexQueryType {
-  protected GenericQueryType children;
-
   protected String name;
 
   protected String parentname;

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/executor/util/QueryUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/executor/util/QueryUtil.java b/core/src/main/java/org/apache/carbondata/core/scan/executor/util/QueryUtil.java
index f03f6ea..ee04bb6 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/executor/util/QueryUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/executor/util/QueryUtil.java
@@ -775,8 +775,7 @@ public class QueryUtil {
         new StructQueryType(dimension.getColName(), dimension.getColName(),
             dimensionToBlockIndexMap.get(dimension.getOrdinal()));
     complexTypeMap.put(dimension.getOrdinal(), parentQueryType);
-    parentBlockIndex =
-        fillChildrenDetails(eachComplexColumnValueSize, columnIdToDictionaryMap, parentBlockIndex,
+    fillChildrenDetails(eachComplexColumnValueSize, columnIdToDictionaryMap, parentBlockIndex,
             dimension, parentQueryType);
   }
 

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java b/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
index e035970..aed2775 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/executor/util/RestructureUtil.java
@@ -175,10 +175,10 @@ public class RestructureUtil {
     // 2.  If default value is not specified then its surrogate key will be
     // 1 which is for member default value null
     if (isDefaultValueNull(defaultValue)) {
-      dictionaryDefaultValue = new Integer(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
+      dictionaryDefaultValue = CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY;
     } else {
       dictionaryDefaultValue =
-          new Integer(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY + 1);
+          CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY + 1;
     }
     return dictionaryDefaultValue;
   }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/expression/RangeExpressionEvaluator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/expression/RangeExpressionEvaluator.java b/core/src/main/java/org/apache/carbondata/core/scan/expression/RangeExpressionEvaluator.java
index 4433e86..d98593c 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/expression/RangeExpressionEvaluator.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/expression/RangeExpressionEvaluator.java
@@ -19,6 +19,7 @@ package org.apache.carbondata.core.scan.expression;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -109,9 +110,12 @@ public class RangeExpressionEvaluator {
       Map<String, List<FilterModificationNode>> filterExpressionMap) {
 
     List<FilterModificationNode> deleteExp = new ArrayList<>();
-    for (String colName : filterExpressionMap.keySet()) {
-      // Check is there are multiple list for this Column.
-      List<FilterModificationNode> filterExp = filterExpressionMap.get(colName);
+    Iterator<Map.Entry<String, List<FilterModificationNode>>> iterator =
+        filterExpressionMap.entrySet().iterator();
+    Map.Entry<String, List<FilterModificationNode>> nextEntry = null;
+    while (iterator.hasNext()) {
+      nextEntry = iterator.next();
+      List<FilterModificationNode> filterExp = nextEntry.getValue();
       if (filterExp.size() > 1) {
         // There are multiple Expression for the same column traverse and check if they can
         // form a range.
@@ -120,8 +124,8 @@ public class RangeExpressionEvaluator {
 
         for (FilterModificationNode exp : filterExp) {
           if ((exp.getExpType() == GREATERTHAN) || (exp.getExpType() == GREATERTHAN_EQUALTO)) {
-            if ((null == endMax) || checkLiteralValue(exp.getCurrentExp(),
-                endMax.getCurrentExp())) {
+            if ((null == endMax) || ((checkLiteralValue(exp.getCurrentExp(),
+                endMax.getCurrentExp())))) {
               if (null == startMin) {
                 startMin = exp;
               } else {
@@ -141,8 +145,8 @@ public class RangeExpressionEvaluator {
             }
           }
           if ((exp.getExpType() == LESSTHAN) || (exp.getExpType() == LESSTHAN_EQUALTO)) {
-            if ((null == startMin) || checkLiteralValue(exp.getCurrentExp(),
-                startMin.getCurrentExp())) {
+            if ((null == startMin) || ((checkLiteralValue(exp.getCurrentExp(),
+                startMin.getCurrentExp())))) {
               if (null == endMax) {
                 endMax = exp;
               } else {
@@ -166,7 +170,7 @@ public class RangeExpressionEvaluator {
         if ((null != startMin) && (null != endMax)) {
           LOG.info(
               "GreaterThan and LessThan Filter Expression changed to Range Expression for column "
-                  + colName);
+                  + nextEntry.getKey());
           // the node can be converted to RANGE.
           Expression n1 = startMin.getCurrentExp();
           Expression n2 = endMax.getCurrentExp();

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/expression/conditional/ListExpression.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/expression/conditional/ListExpression.java b/core/src/main/java/org/apache/carbondata/core/scan/expression/conditional/ListExpression.java
index 32ca11c..1c00b14 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/expression/conditional/ListExpression.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/expression/conditional/ListExpression.java
@@ -48,13 +48,18 @@ public class ListExpression extends Expression {
   }
 
   @Override public ExpressionType getFilterExpressionType() {
-    // TODO Auto-generated method stub
     return ExpressionType.LIST;
   }
 
   @Override public String getString() {
-    // TODO Auto-generated method stub
-    return null;
+    StringBuffer value = new StringBuffer();
+    value.append("ListExpression(");
+    for (Expression expr : children) {
+      value.append(expr.getString()).append(";");
+    }
+    value.append(')');
+
+    return  value.toString();
   }
 
   @Override public void findAndSetChild(Expression oldExpr, Expression newExpr) {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterExpressionProcessor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterExpressionProcessor.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterExpressionProcessor.java
index 3a19e1b..9bc864d 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterExpressionProcessor.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterExpressionProcessor.java
@@ -163,18 +163,17 @@ public class FilterExpressionProcessor implements FilterProcessor {
   }
 
   private String joinByteArray(byte[] bytes, char delimiter) {
-    String byteArrayAsString = "";
+    StringBuffer byteArrayAsString = new StringBuffer();
+    byteArrayAsString.append("");
     if (null != bytes) {
       for (int i = 0; i < bytes.length; i++) {
-        byteArrayAsString = byteArrayAsString + delimiter + bytes[i];
+        byteArrayAsString.append(delimiter).append(bytes[i]);
       }
       if (byteArrayAsString.length() > 0) {
-        byteArrayAsString = byteArrayAsString.substring(1);
+        return byteArrayAsString.substring(1);
       }
-    } else {
-      byteArrayAsString = null;
     }
-    return byteArrayAsString;
+    return null;
   }
 
   /**
@@ -539,9 +538,9 @@ public class FilterExpressionProcessor implements FilterProcessor {
             if ((condExpression.getColumnList().get(0).getCarbonColumn()
                 .hasEncoding(Encoding.DICTIONARY) && !condExpression.getColumnList().get(0)
                 .getCarbonColumn().hasEncoding(Encoding.DIRECT_DICTIONARY))
-                || (currentCondExpression.getColumnList().get(0).getCarbonColumn().isMeasure())) {
+                || (condExpression.getColumnList().get(0).getCarbonColumn().isMeasure())) {
               return new ConditionalFilterResolverImpl(expression, true, true, tableIdentifier,
-                  currentCondExpression.getColumnList().get(0).getCarbonColumn().isMeasure());
+                  condExpression.getColumnList().get(0).getCarbonColumn().isMeasure());
             }
           }
         }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java
index 2ead304..6230771 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/FilterUtil.java
@@ -205,7 +205,7 @@ public final class FilterUtil {
             segmentProperties, true);
       } else {
         return new RestructureIncludeFilterExecutorImpl(dimColResolvedFilterInfo,
-            msrColResolvedFilterInfo, segmentProperties, true);
+            msrColResolvedFilterInfo, true);
       }
     }
     if (null != dimColResolvedFilterInfo && dimColResolvedFilterInfo.getDimension().isColumnar()) {
@@ -221,7 +221,7 @@ public final class FilterUtil {
             segmentProperties, false);
       } else {
         return new RestructureIncludeFilterExecutorImpl(dimColResolvedFilterInfo,
-            msrColResolvedFilterInfo, segmentProperties, false);
+            msrColResolvedFilterInfo, false);
       }
     } else {
       return new IncludeColGroupFilterExecuterImpl(dimColResolvedFilterInfo, segmentProperties);
@@ -254,7 +254,7 @@ public final class FilterUtil {
             segmentProperties, true);
       } else {
         return new RestructureExcludeFilterExecutorImpl(dimColResolvedFilterInfo,
-            msrColResolvedFilterInfo, segmentProperties, true);
+            msrColResolvedFilterInfo, true);
       }
     }
     if ((null != dimColResolvedFilterInfo) && (dimColResolvedFilterInfo.getDimension()
@@ -271,7 +271,7 @@ public final class FilterUtil {
             segmentProperties, false);
       } else {
         return new RestructureExcludeFilterExecutorImpl(dimColResolvedFilterInfo,
-            msrColResolvedFilterInfo, segmentProperties, false);
+            msrColResolvedFilterInfo, false);
       }
     } else {
       return new ExcludeColGroupFilterExecuterImpl(dimColResolvedFilterInfo, segmentProperties);

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureExcludeFilterExecutorImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureExcludeFilterExecutorImpl.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureExcludeFilterExecutorImpl.java
index 8e06894..1509949 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureExcludeFilterExecutorImpl.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureExcludeFilterExecutorImpl.java
@@ -19,7 +19,6 @@ package org.apache.carbondata.core.scan.filter.executer;
 import java.io.IOException;
 import java.util.BitSet;
 
-import org.apache.carbondata.core.datastore.block.SegmentProperties;
 import org.apache.carbondata.core.scan.filter.FilterUtil;
 import org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
 import org.apache.carbondata.core.scan.filter.resolver.resolverinfo.MeasureColumnResolvedFilterInfo;
@@ -28,10 +27,6 @@ import org.apache.carbondata.core.util.BitSetGroup;
 
 public class RestructureExcludeFilterExecutorImpl extends RestructureEvaluatorImpl {
 
-  protected DimColumnResolvedFilterInfo dimColEvaluatorInfo;
-  protected MeasureColumnResolvedFilterInfo measureColumnResolvedFilterInfo;
-  protected SegmentProperties segmentProperties;
-  protected boolean isMeasure;
 
   /**
    * flag to check whether filter values contain the default value applied on the dimension column
@@ -40,12 +35,7 @@ public class RestructureExcludeFilterExecutorImpl extends RestructureEvaluatorIm
   protected boolean isDefaultValuePresentInFilterValues;
 
   public RestructureExcludeFilterExecutorImpl(DimColumnResolvedFilterInfo dimColEvaluatorInfo,
-      MeasureColumnResolvedFilterInfo measureColumnResolvedFilterInfo,
-      SegmentProperties segmentProperties, boolean isMeasure) {
-    this.dimColEvaluatorInfo = dimColEvaluatorInfo;
-    this.measureColumnResolvedFilterInfo = measureColumnResolvedFilterInfo;
-    this.segmentProperties = segmentProperties;
-    this.isMeasure = isMeasure;
+      MeasureColumnResolvedFilterInfo measureColumnResolvedFilterInfo, boolean isMeasure) {
     if (isMeasure) {
       isDefaultValuePresentInFilterValues =
           isMeasureDefaultValuePresentInFilterValues(measureColumnResolvedFilterInfo);

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureIncludeFilterExecutorImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureIncludeFilterExecutorImpl.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureIncludeFilterExecutorImpl.java
index 20889ea..0e9a5f0 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureIncludeFilterExecutorImpl.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RestructureIncludeFilterExecutorImpl.java
@@ -19,7 +19,6 @@ package org.apache.carbondata.core.scan.filter.executer;
 import java.io.IOException;
 import java.util.BitSet;
 
-import org.apache.carbondata.core.datastore.block.SegmentProperties;
 import org.apache.carbondata.core.scan.filter.FilterUtil;
 import org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
 import org.apache.carbondata.core.scan.filter.resolver.resolverinfo.MeasureColumnResolvedFilterInfo;
@@ -28,11 +27,6 @@ import org.apache.carbondata.core.util.BitSetGroup;
 
 public class RestructureIncludeFilterExecutorImpl extends RestructureEvaluatorImpl {
 
-  protected DimColumnResolvedFilterInfo dimColumnEvaluatorInfo;
-  protected MeasureColumnResolvedFilterInfo measureColumnResolvedFilterInfo;
-  protected SegmentProperties segmentProperties;
-  protected boolean isMeasure;
-
   /**
    * flag to check whether filter values contain the default value applied on the dimension column
    * which does not exist in the current block
@@ -40,12 +34,7 @@ public class RestructureIncludeFilterExecutorImpl extends RestructureEvaluatorIm
   protected boolean isDefaultValuePresentInFilterValues;
 
   public RestructureIncludeFilterExecutorImpl(DimColumnResolvedFilterInfo dimColumnEvaluatorInfo,
-      MeasureColumnResolvedFilterInfo measureColumnResolvedFilterInfo,
-      SegmentProperties segmentProperties, boolean isMeasure) {
-    this.dimColumnEvaluatorInfo = dimColumnEvaluatorInfo;
-    this.measureColumnResolvedFilterInfo = measureColumnResolvedFilterInfo;
-    this.isMeasure = isMeasure;
-    this.segmentProperties = segmentProperties;
+      MeasureColumnResolvedFilterInfo measureColumnResolvedFilterInfo, boolean isMeasure) {
     if (isMeasure) {
       isDefaultValuePresentInFilterValues =
           isMeasureDefaultValuePresentInFilterValues(measureColumnResolvedFilterInfo);

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RowLevelFilterExecuterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RowLevelFilterExecuterImpl.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RowLevelFilterExecuterImpl.java
index 40065f1..e066ee3 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RowLevelFilterExecuterImpl.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/executer/RowLevelFilterExecuterImpl.java
@@ -110,7 +110,7 @@ public class RowLevelFilterExecuterImpl implements FilterExecuter {
     } else {
       this.dimColEvaluatorInfoList = dimColEvaluatorInfoList;
     }
-    if (dimColEvaluatorInfoList.size() > 0) {
+    if (this.dimColEvaluatorInfoList.size() > 0) {
       this.isDimensionPresentInCurrentBlock = new boolean[dimColEvaluatorInfoList.size()];
       this.dimensionBlocksIndex = new int[dimColEvaluatorInfoList.size()];
     } else {
@@ -122,7 +122,7 @@ public class RowLevelFilterExecuterImpl implements FilterExecuter {
     } else {
       this.msrColEvalutorInfoList = msrColEvalutorInfoList;
     }
-    if (msrColEvalutorInfoList.size() > 0) {
+    if (this.msrColEvalutorInfoList.size() > 0) {
       this.isMeasurePresentInCurrentBlock = new boolean[msrColEvalutorInfoList.size()];
       this.measureBlocksIndex = new int[msrColEvalutorInfoList.size()];
     } else {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/intf/FilterOptimizerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/intf/FilterOptimizerImpl.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/intf/FilterOptimizerImpl.java
index cb9495b..32b1ae1 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/intf/FilterOptimizerImpl.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/intf/FilterOptimizerImpl.java
@@ -21,11 +21,9 @@ import org.apache.carbondata.core.scan.expression.Expression;
 
 public class FilterOptimizerImpl implements FilterOptimizer {
 
-  protected FilterOptimizer filterOptimizer;
   protected Expression filterExpression;
 
-  public FilterOptimizerImpl(FilterOptimizer filterOptimizer, Expression filterExpression) {
-    this.filterOptimizer = filterOptimizer;
+  public FilterOptimizerImpl(Expression filterExpression) {
     this.filterExpression = filterExpression;
   }
 

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/optimizer/RangeFilterOptmizer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/optimizer/RangeFilterOptmizer.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/optimizer/RangeFilterOptmizer.java
index 6c61b62..e5cb0ad 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/optimizer/RangeFilterOptmizer.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/optimizer/RangeFilterOptmizer.java
@@ -27,7 +27,7 @@ public class RangeFilterOptmizer extends FilterOptimizerImpl {
   RangeExpressionEvaluator rangeExpEvaluator;
 
   public RangeFilterOptmizer(FilterOptimizer filterOptimizer, Expression filterExpression) {
-    super(filterOptimizer, filterExpression);
+    super(filterExpression);
     this.rangeExpEvaluator = new RangeExpressionEvaluator(filterExpression);
 
   }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
index 3880eb7..f8586ed 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
@@ -44,8 +44,6 @@ public class MeasureColumnResolvedFilterInfo extends ColumnResolvedFilterInfo
 
   private boolean isMeasureExistsInCurrentSilce = true;
 
-  private Object defaultValue;
-
   private CarbonColumn carbonColumn;
 
   private CarbonMeasure carbonMeasure;
@@ -115,10 +113,6 @@ public class MeasureColumnResolvedFilterInfo extends ColumnResolvedFilterInfo
     return true;
   }
 
-  public Object getDefaultValue() {
-    return defaultValue;
-  }
-
   public CarbonColumn getCarbonColumn() {
     return carbonColumn;
   }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
index b703959..221d243 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
@@ -48,25 +48,28 @@ public class CustomTypeDictionaryVisitor implements ResolvedFilterInfoVisitorInt
   public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
     ColumnFilterInfo resolvedFilterObject = null;
-    DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
-    List<String> evaluateResultListFinal;
-    try {
-      evaluateResultListFinal = metadata.getExpression().evaluate(null).getListAsString();
-    } catch (FilterIllegalMemberException e) {
-      throw new FilterUnsupportedException(e);
+    if (visitableObj instanceof DimColumnResolvedFilterInfo) {
+      DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
+      List<String> evaluateResultListFinal;
+      try {
+        evaluateResultListFinal = metadata.getExpression().evaluate(null).getListAsString();
+      } catch (FilterIllegalMemberException e) {
+        throw new FilterUnsupportedException(e);
+      }
+      resolvedFilterObject =
+          getDirectDictionaryValKeyMemberForFilter(metadata.getColumnExpression(),
+              evaluateResultListFinal, metadata.isIncludeFilter(),
+              metadata.getColumnExpression().getDimension().getDataType());
+      if (!metadata.isIncludeFilter() && null != resolvedFilterObject && !resolvedFilterObject
+          .getFilterList().contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY)) {
+        // Adding default surrogate key of null member inorder to not display the same while
+        // displaying the report as per hive compatibility.
+        resolvedFilterObject.getFilterList()
+            .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
+        Collections.sort(resolvedFilterObject.getFilterList());
+      }
+      resolveDimension.setFilterValues(resolvedFilterObject);
     }
-    resolvedFilterObject = getDirectDictionaryValKeyMemberForFilter(metadata.getColumnExpression(),
-        evaluateResultListFinal, metadata.isIncludeFilter(),
-        metadata.getColumnExpression().getDimension().getDataType());
-    if (!metadata.isIncludeFilter() && null != resolvedFilterObject && !resolvedFilterObject
-        .getFilterList().contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY)) {
-      // Adding default surrogate key of null member inorder to not display the same while
-      // displaying the report as per hive compatibility.
-      resolvedFilterObject.getFilterList()
-          .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
-      Collections.sort(resolvedFilterObject.getFilterList());
-    }
-    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 
   protected ColumnFilterInfo getDirectDictionaryValKeyMemberForFilter(

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
index b13b8d3..2fc7503 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
@@ -45,30 +45,32 @@ public class DictionaryColumnVisitor implements ResolvedFilterInfoVisitorIntf {
   public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException, IOException {
 
-    DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
-    ColumnFilterInfo resolvedFilterObject = null;
-    List<String> evaluateResultListFinal;
-    try {
-      evaluateResultListFinal = metadata.getExpression().evaluate(null).getListAsString();
-    } catch (FilterIllegalMemberException e) {
-      throw new FilterUnsupportedException(e);
-    }
-    resolvedFilterObject = FilterUtil
-        .getFilterValues(metadata.getTableIdentifier(), metadata.getColumnExpression(),
-            evaluateResultListFinal, metadata.isIncludeFilter());
-    if (!metadata.isIncludeFilter() && null != resolvedFilterObject) {
-      // Adding default surrogate key of null member inorder to not display the same while
-      // displaying the report as per hive compatibility.
-      // first check of surrogate key for null value is already added then
-      // no need to add again otherwise result will be wrong in case of exclude filter
-      // this is because two times it will flip the same bit
-      if (!resolvedFilterObject.getFilterList()
-          .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY)) {
-        resolvedFilterObject.getFilterList()
-            .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
+    if (visitableObj instanceof DimColumnResolvedFilterInfo) {
+      DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
+      ColumnFilterInfo resolvedFilterObject = null;
+      List<String> evaluateResultListFinal;
+      try {
+        evaluateResultListFinal = metadata.getExpression().evaluate(null).getListAsString();
+      } catch (FilterIllegalMemberException e) {
+        throw new FilterUnsupportedException(e);
+      }
+      resolvedFilterObject = FilterUtil
+          .getFilterValues(metadata.getTableIdentifier(), metadata.getColumnExpression(),
+              evaluateResultListFinal, metadata.isIncludeFilter());
+      if (!metadata.isIncludeFilter() && null != resolvedFilterObject) {
+        // Adding default surrogate key of null member inorder to not display the same while
+        // displaying the report as per hive compatibility.
+        // first check of surrogate key for null value is already added then
+        // no need to add again otherwise result will be wrong in case of exclude filter
+        // this is because two times it will flip the same bit
+        if (!resolvedFilterObject.getFilterList()
+            .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY)) {
+          resolvedFilterObject.getFilterList()
+              .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
+        }
+        Collections.sort(resolvedFilterObject.getFilterList());
       }
-      Collections.sort(resolvedFilterObject.getFilterList());
+      resolveDimension.setFilterValues(resolvedFilterObject);
     }
-    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java
index 8c86a2b..ac4ced8 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java
@@ -45,33 +45,35 @@ public class MeasureColumnVisitor implements ResolvedFilterInfoVisitorIntf {
    */
   public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
-    MeasureColumnResolvedFilterInfo resolveDimension =
-        (MeasureColumnResolvedFilterInfo) visitableObj;
-    ColumnFilterInfo resolvedFilterObject = null;
-    List<String> evaluateResultListFinal = null;
-    try {
-      // handling for is null case scenarios
-      if (metadata.getExpression() instanceof EqualToExpression) {
-        EqualToExpression expression = (EqualToExpression) metadata.getExpression();
-        if (expression.isNull) {
-          evaluateResultListFinal = new ArrayList<>(1);
+    if (visitableObj instanceof MeasureColumnResolvedFilterInfo) {
+      MeasureColumnResolvedFilterInfo resolveDimension =
+          (MeasureColumnResolvedFilterInfo) visitableObj;
+      ColumnFilterInfo resolvedFilterObject = null;
+      List<String> evaluateResultListFinal = new ArrayList<>(1);
+      try {
+        // handling for is null case scenarios
+        if (metadata.getExpression() instanceof EqualToExpression) {
+          EqualToExpression expression = (EqualToExpression) metadata.getExpression();
+          if (expression.isNull) {
+            evaluateResultListFinal = new ArrayList<>(1);
+            evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+          }
+        } else {
+          evaluateResultListFinal = metadata.getExpression().evaluate(null).getListAsString();
+        }
+        // Adding default  null member inorder to not display the same while
+        // displaying the report as per hive compatibility.
+        if (!metadata.isIncludeFilter() && !evaluateResultListFinal
+            .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL)) {
           evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
         }
-      } else {
-        evaluateResultListFinal = metadata.getExpression().evaluate(null).getListAsString();
-      }
-      // Adding default  null member inorder to not display the same while
-      // displaying the report as per hive compatibility.
-      if (!metadata.isIncludeFilter() && !evaluateResultListFinal
-          .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL)) {
-        evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+      } catch (FilterIllegalMemberException e) {
+        throw new FilterUnsupportedException(e);
       }
-    } catch (FilterIllegalMemberException e) {
-      throw new FilterUnsupportedException(e);
+      resolvedFilterObject = FilterUtil
+          .getMeasureValKeyMemberForFilter(evaluateResultListFinal, metadata.isIncludeFilter(),
+              metadata.getColumnExpression().getDataType(), resolveDimension.getMeasure());
+      resolveDimension.setFilterValues(resolvedFilterObject);
     }
-    resolvedFilterObject = FilterUtil
-        .getMeasureValKeyMemberForFilter(evaluateResultListFinal, metadata.isIncludeFilter(),
-            metadata.getColumnExpression().getDataType(), resolveDimension.getMeasure());
-    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
index a8af72e..132f854 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
@@ -45,32 +45,34 @@ public class NoDictionaryTypeVisitor implements ResolvedFilterInfoVisitorIntf {
    */
   public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
-    DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
-    ColumnFilterInfo resolvedFilterObject = null;
-    List<String> evaluateResultListFinal = null;
-    try {
-      // handling for is null case scenarios
-      if (metadata.getExpression() instanceof EqualToExpression) {
-        EqualToExpression expression = (EqualToExpression) metadata.getExpression();
-        if (expression.isNull) {
-          evaluateResultListFinal = new ArrayList<>(1);
+    if (visitableObj instanceof DimColumnResolvedFilterInfo) {
+      DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
+      ColumnFilterInfo resolvedFilterObject = null;
+      List<String> evaluateResultListFinal = new ArrayList<>(1);
+      try {
+        // handling for is null case scenarios
+        if (metadata.getExpression() instanceof EqualToExpression) {
+          EqualToExpression expression = (EqualToExpression) metadata.getExpression();
+          if (expression.isNull) {
+            evaluateResultListFinal = new ArrayList<>(1);
+            evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+          }
+        } else {
+          evaluateResultListFinal = metadata.getExpression().evaluate(null).getListAsString();
+        }
+        // Adding default  null member inorder to not display the same while
+        // displaying the report as per hive compatibility.
+        if (!metadata.isIncludeFilter() && !evaluateResultListFinal
+            .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL)) {
           evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
         }
-      } else {
-        evaluateResultListFinal = metadata.getExpression().evaluate(null).getListAsString();
-      }
-      // Adding default  null member inorder to not display the same while
-      // displaying the report as per hive compatibility.
-      if (!metadata.isIncludeFilter() && !evaluateResultListFinal
-          .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL)) {
-        evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+      } catch (FilterIllegalMemberException e) {
+        throw new FilterUnsupportedException(e);
       }
-    } catch (FilterIllegalMemberException e) {
-      throw new FilterUnsupportedException(e);
+      resolvedFilterObject = FilterUtil
+          .getNoDictionaryValKeyMemberForFilter(evaluateResultListFinal, metadata.isIncludeFilter(),
+              metadata.getColumnExpression().getDataType());
+      resolveDimension.setFilterValues(resolvedFilterObject);
     }
-    resolvedFilterObject = FilterUtil
-        .getNoDictionaryValKeyMemberForFilter(evaluateResultListFinal, metadata.isIncludeFilter(),
-            metadata.getColumnExpression().getDataType());
-    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
index 41c95e5..3d16cd2 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
@@ -44,20 +44,22 @@ public class RangeDictionaryColumnVisitor extends DictionaryColumnVisitor
    */
   public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException, IOException {
-    DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
-    ColumnFilterInfo resolvedFilterObject = null;
-    List<String> evaluateResultListFinal;
-    resolvedFilterObject = FilterUtil
-        .getFilterListForAllValues(metadata.getTableIdentifier(), metadata.getExpression(),
-            metadata.getColumnExpression(), metadata.isIncludeFilter());
+    if (visitableObj instanceof DimColumnResolvedFilterInfo) {
+      DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
+      ColumnFilterInfo resolvedFilterObject = null;
+      List<String> evaluateResultListFinal;
+      resolvedFilterObject = FilterUtil
+          .getFilterListForAllValues(metadata.getTableIdentifier(), metadata.getExpression(),
+              metadata.getColumnExpression(), metadata.isIncludeFilter());
 
-    if (!metadata.isIncludeFilter() && null != resolvedFilterObject) {
-      // Adding default surrogate key of null member inorder to not display the same while
-      // displaying the report as per hive compatibility.
-      resolvedFilterObject.getFilterList()
-          .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
-      Collections.sort(resolvedFilterObject.getFilterList());
+      if (!metadata.isIncludeFilter() && null != resolvedFilterObject) {
+        // Adding default surrogate key of null member inorder to not display the same while
+        // displaying the report as per hive compatibility.
+        resolvedFilterObject.getFilterList()
+            .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
+        Collections.sort(resolvedFilterObject.getFilterList());
+      }
+      resolveDimension.setFilterValues(resolvedFilterObject);
     }
-    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
index d740648..918fd9e 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
@@ -46,36 +46,39 @@ public class RangeDirectDictionaryVisitor extends CustomTypeDictionaryVisitor
    */
   public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
-    DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
-    ColumnFilterInfo resolvedFilterObject = null;
-    List<ExpressionResult> listOfExpressionResults = new ArrayList<ExpressionResult>(20);
-    List<String> evaluateResultListFinal = new ArrayList<String>();
-    try {
-      listOfExpressionResults = ((RangeExpression) metadata.getExpression()).getLiterals();
+    if (visitableObj instanceof DimColumnResolvedFilterInfo) {
+      DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
+      ColumnFilterInfo resolvedFilterObject = null;
+      List<ExpressionResult> listOfExpressionResults = null;
+      List<String> evaluateResultListFinal = new ArrayList<String>();
+      try {
+        listOfExpressionResults = ((RangeExpression) metadata.getExpression()).getLiterals();
 
-      for (ExpressionResult result : listOfExpressionResults) {
-        if (result.getString() == null) {
-          evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
-          continue;
+        for (ExpressionResult result : listOfExpressionResults) {
+          if (result.getString() == null) {
+            evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+            continue;
+          }
+          evaluateResultListFinal.add(result.getString());
         }
-        evaluateResultListFinal.add(result.getString());
+      } catch (FilterIllegalMemberException e) {
+        throw new FilterUnsupportedException(e);
       }
-    } catch (FilterIllegalMemberException e) {
-      throw new FilterUnsupportedException(e);
-    }
 
-    resolvedFilterObject = getDirectDictionaryValKeyMemberForFilter(metadata.getColumnExpression(),
-        evaluateResultListFinal, metadata.isIncludeFilter(),
-        metadata.getColumnExpression().getDimension().getDataType());
+      resolvedFilterObject =
+          getDirectDictionaryValKeyMemberForFilter(metadata.getColumnExpression(),
+              evaluateResultListFinal, metadata.isIncludeFilter(),
+              metadata.getColumnExpression().getDimension().getDataType());
 
-    if (!metadata.isIncludeFilter() && null != resolvedFilterObject && !resolvedFilterObject
-        .getFilterList().contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY)) {
-      // Adding default surrogate key of null member inorder to not display the same while
-      // displaying the report as per hive compatibility.
-      resolvedFilterObject.getFilterList()
-          .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
-      Collections.sort(resolvedFilterObject.getFilterList());
+      if (!metadata.isIncludeFilter() && null != resolvedFilterObject && !resolvedFilterObject
+          .getFilterList().contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY)) {
+        // Adding default surrogate key of null member inorder to not display the same while
+        // displaying the report as per hive compatibility.
+        resolvedFilterObject.getFilterList()
+            .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
+        Collections.sort(resolvedFilterObject.getFilterList());
+      }
+      resolveDimension.setFilterValues(resolvedFilterObject);
     }
-    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
index 87864f7..d4c44ba 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
@@ -47,35 +47,37 @@ public class RangeNoDictionaryTypeVisitor extends NoDictionaryTypeVisitor
    */
   public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
-    DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
-    ColumnFilterInfo resolvedFilterObject = null;
-    List<ExpressionResult> listOfExpressionResults = new ArrayList<ExpressionResult>(20);
-    List<String> evaluateResultListFinal = new ArrayList<String>();
-    try {
-      // Add The Range Filter Values.
-      if (metadata.getExpression() instanceof RangeExpression) {
-        listOfExpressionResults = ((RangeExpression) metadata.getExpression()).getLiterals();
-      }
+    if (visitableObj instanceof DimColumnResolvedFilterInfo) {
+      DimColumnResolvedFilterInfo resolveDimension = (DimColumnResolvedFilterInfo) visitableObj;
+      ColumnFilterInfo resolvedFilterObject = null;
+      List<ExpressionResult> listOfExpressionResults = new ArrayList<ExpressionResult>(20);
+      List<String> evaluateResultListFinal = new ArrayList<String>();
+      try {
+        // Add The Range Filter Values.
+        if (metadata.getExpression() instanceof RangeExpression) {
+          listOfExpressionResults = ((RangeExpression) metadata.getExpression()).getLiterals();
+        }
 
-      for (ExpressionResult result : listOfExpressionResults) {
-        if (result.getString() == null) {
-          evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
-          continue;
+        for (ExpressionResult result : listOfExpressionResults) {
+          if (result.getString() == null) {
+            evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+            continue;
+          }
+          evaluateResultListFinal.add(result.getString());
         }
-        evaluateResultListFinal.add(result.getString());
-      }
-      // evaluateResultListFinal.add(metadata.getExpression().evaluate().getListAsString());
-      if (!metadata.isIncludeFilter() && !evaluateResultListFinal
-          .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL)) {
-        evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+        // evaluateResultListFinal.add(metadata.getExpression().evaluate().getListAsString());
+        if (!metadata.isIncludeFilter() && !evaluateResultListFinal
+            .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL)) {
+          evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
 
+        }
+      } catch (FilterIllegalMemberException e) {
+        throw new FilterUnsupportedException(e);
       }
-    } catch (FilterIllegalMemberException e) {
-      throw new FilterUnsupportedException(e);
+      resolvedFilterObject = FilterUtil
+          .getNoDictionaryValKeyMemberForFilter(evaluateResultListFinal, metadata.isIncludeFilter(),
+              metadata.getColumnExpression().getDataType());
+      resolveDimension.setFilterValues(resolvedFilterObject);
     }
-    resolvedFilterObject = FilterUtil
-        .getNoDictionaryValKeyMemberForFilter(evaluateResultListFinal, metadata.isIncludeFilter(),
-            metadata.getColumnExpression().getDataType());
-    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/scan/result/vector/ColumnVectorInfo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/scan/result/vector/ColumnVectorInfo.java b/core/src/main/java/org/apache/carbondata/core/scan/result/vector/ColumnVectorInfo.java
index 631ab97..a5f81b9 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/result/vector/ColumnVectorInfo.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/result/vector/ColumnVectorInfo.java
@@ -36,4 +36,27 @@ public class ColumnVectorInfo implements Comparable<ColumnVectorInfo> {
   @Override public int compareTo(ColumnVectorInfo o) {
     return ordinal - o.ordinal;
   }
+
+  @Override public boolean equals(Object obj) {
+    if (this == obj) {
+      return true;
+    }
+
+    if (null == obj) {
+      return false;
+    }
+
+    if (!(obj instanceof ColumnVectorInfo)) {
+      return false;
+    }
+
+    return ordinal == ((ColumnVectorInfo) obj).ordinal;
+  }
+
+  @Override public int hashCode() {
+    final int prime = 31;
+    int result = 1;
+    result = prime * result + (ordinal);
+    return result;
+  }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/stats/QueryStatisticsRecorderImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/stats/QueryStatisticsRecorderImpl.java b/core/src/main/java/org/apache/carbondata/core/stats/QueryStatisticsRecorderImpl.java
index ffb7d7f..9807eaa 100644
--- a/core/src/main/java/org/apache/carbondata/core/stats/QueryStatisticsRecorderImpl.java
+++ b/core/src/main/java/org/apache/carbondata/core/stats/QueryStatisticsRecorderImpl.java
@@ -164,14 +164,16 @@ public class QueryStatisticsRecorderImpl implements QueryStatisticsRecorder, Ser
       values.add(String.valueOf(result_size));
       StringBuilder tableInfo = new StringBuilder();
       String[] columns = headers.split(",");
-      String line = "";
-      String hearLine = "";
-      String valueLine = "";
+      StringBuilder line = new StringBuilder("");
+      StringBuilder hearLine = new StringBuilder("");
+      StringBuilder valueLine = new StringBuilder("");
       for (int i = 0; i < columns.length; i++) {
         int len = Math.max(columns[i].length(), values.get(i).length());
-        line += "+" + printLine("-", len);
-        hearLine += "|" + printLine(" ", len - columns[i].length()) + columns[i];
-        valueLine += "|" + printLine(" ", len - values.get(i).length()) + values.get(i);
+        line.append("+").append(printLine("-", len));
+        hearLine.append("|").append(printLine(" ", len - columns[i].length()))
+            .append(columns[i]);
+        valueLine.append("|").append(printLine(" ", len - values.get(i).length()))
+            .append(values.get(i));
       }
       // struct table info
       tableInfo.append(line).append("+").append("\n");

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java b/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
index 831a2fb..d1c16bb 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
@@ -143,8 +143,8 @@ public final class ByteUtil {
        * 32-bit. On the other hand, it is substantially faster on 64-bit.
        */
       for (int i = 0; i < minWords * SIZEOF_LONG; i += SIZEOF_LONG) {
-        long lw = CarbonUnsafe.unsafe.getLong(buffer1, offset1Adj + (long) i);
-        long rw = CarbonUnsafe.unsafe.getLong(buffer2, offset2Adj + (long) i);
+        long lw = CarbonUnsafe.getUnsafe().getLong(buffer1, offset1Adj + (long) i);
+        long rw = CarbonUnsafe.getUnsafe().getLong(buffer2, offset2Adj + (long) i);
         long diff = lw ^ rw;
 
         if (diff != 0) {
@@ -209,8 +209,10 @@ public final class ByteUtil {
       if (minLength > 7) {
         minWords = minLength / SIZEOF_LONG;
         for (int i = 0; i < minWords * SIZEOF_LONG; i += SIZEOF_LONG) {
-          long lw = CarbonUnsafe.unsafe.getLong(buffer1, CarbonUnsafe.BYTE_ARRAY_OFFSET + (long) i);
-          long rw = CarbonUnsafe.unsafe.getLong(buffer2, CarbonUnsafe.BYTE_ARRAY_OFFSET + (long) i);
+          long lw =
+              CarbonUnsafe.getUnsafe().getLong(buffer1, CarbonUnsafe.BYTE_ARRAY_OFFSET + (long) i);
+          long rw =
+              CarbonUnsafe.getUnsafe().getLong(buffer2, CarbonUnsafe.BYTE_ARRAY_OFFSET + (long) i);
           long diff = lw ^ rw;
 
           if (diff != 0) {
@@ -252,6 +254,7 @@ public final class ByteUtil {
       }
       return len1 - len2;
     }
+
     public boolean equals(byte[] buffer1, byte[] buffer2) {
       if (buffer1.length != buffer2.length) {
         return false;
@@ -259,8 +262,8 @@ public final class ByteUtil {
       int len = buffer1.length / 8;
       long currentOffset = CarbonUnsafe.BYTE_ARRAY_OFFSET;
       for (int i = 0; i < len; i++) {
-        long lw = CarbonUnsafe.unsafe.getLong(buffer1, currentOffset);
-        long rw = CarbonUnsafe.unsafe.getLong(buffer2, currentOffset);
+        long lw = CarbonUnsafe.getUnsafe().getLong(buffer1, currentOffset);
+        long rw = CarbonUnsafe.getUnsafe().getLong(buffer2, currentOffset);
         if (lw != rw) {
           return false;
         }
@@ -269,8 +272,8 @@ public final class ByteUtil {
       len = buffer1.length % 8;
       if (len > 0) {
         for (int i = 0; i < len; i += 1) {
-          long lw = CarbonUnsafe.unsafe.getByte(buffer1, currentOffset);
-          long rw = CarbonUnsafe.unsafe.getByte(buffer2, currentOffset);
+          long lw = CarbonUnsafe.getUnsafe().getByte(buffer1, currentOffset);
+          long rw = CarbonUnsafe.getUnsafe().getByte(buffer2, currentOffset);
           if (lw != rw) {
             return false;
           }
@@ -288,8 +291,8 @@ public final class ByteUtil {
       int len = length1 / 8;
       long currentOffset = CarbonUnsafe.BYTE_ARRAY_OFFSET;
       for (int i = 0; i < len; i++) {
-        long lw = CarbonUnsafe.unsafe.getLong(buffer1, currentOffset + offset1);
-        long rw = CarbonUnsafe.unsafe.getLong(buffer2, currentOffset + offset2);
+        long lw = CarbonUnsafe.getUnsafe().getLong(buffer1, currentOffset + offset1);
+        long rw = CarbonUnsafe.getUnsafe().getLong(buffer2, currentOffset + offset2);
         if (lw != rw) {
           return false;
         }
@@ -298,8 +301,8 @@ public final class ByteUtil {
       len = buffer1.length % 8;
       if (len > 0) {
         for (int i = 0; i < len; i += 1) {
-          long lw = CarbonUnsafe.unsafe.getByte(buffer1, currentOffset + offset1);
-          long rw = CarbonUnsafe.unsafe.getByte(buffer2, currentOffset + offset2);
+          long lw = CarbonUnsafe.getUnsafe().getByte(buffer1, currentOffset + offset1);
+          long rw = CarbonUnsafe.getUnsafe().getByte(buffer2, currentOffset + offset2);
           if (lw != rw) {
             return false;
           }
@@ -426,12 +429,12 @@ public final class ByteUtil {
       throw explainWrongLengthOrOffset(bytes, offset, length, SIZEOF_SHORT);
     }
     short n = 0;
-    if (CarbonUnsafe.unsafe != null) {
+    if (CarbonUnsafe.getUnsafe() != null) {
       if (CarbonUnsafe.ISLITTLEENDIAN) {
         n = Short.reverseBytes(
-            CarbonUnsafe.unsafe.getShort(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET));
+            CarbonUnsafe.getUnsafe().getShort(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET));
       } else {
-        n = CarbonUnsafe.unsafe.getShort(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET);
+        n = CarbonUnsafe.getUnsafe().getShort(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET);
       }
     } else {
 
@@ -497,12 +500,12 @@ public final class ByteUtil {
       throw explainWrongLengthOrOffset(bytes, offset, length, SIZEOF_INT);
     }
     int n = 0;
-    if (CarbonUnsafe.unsafe != null) {
+    if (CarbonUnsafe.getUnsafe() != null) {
       if (CarbonUnsafe.ISLITTLEENDIAN) {
         n = Integer.reverseBytes(
-            CarbonUnsafe.unsafe.getInt(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET));
+            CarbonUnsafe.getUnsafe().getInt(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET));
       } else {
-        n = CarbonUnsafe.unsafe.getInt(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET);
+        n = CarbonUnsafe.getUnsafe().getInt(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET);
       }
     } else {
       for (int i = offset; i < (offset + length); i++) {
@@ -550,12 +553,12 @@ public final class ByteUtil {
       throw explainWrongLengthOrOffset(bytes, offset, length, SIZEOF_LONG);
     }
     long l = 0;
-    if (CarbonUnsafe.unsafe != null) {
+    if (CarbonUnsafe.getUnsafe() != null) {
       if (CarbonUnsafe.ISLITTLEENDIAN) {
         l = Long.reverseBytes(
-            CarbonUnsafe.unsafe.getLong(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET));
+            CarbonUnsafe.getUnsafe().getLong(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET));
       } else {
-        l = CarbonUnsafe.unsafe.getLong(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET);
+        l = CarbonUnsafe.getUnsafe().getLong(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET);
       }
     } else {
       for (int i = offset; i < offset + length; i++) {
@@ -594,11 +597,11 @@ public final class ByteUtil {
           "Not enough room to put an int at" + " offset " + offset + " in a " + bytes.length
               + " byte array");
     }
-    if (CarbonUnsafe.unsafe != null) {
+    if (CarbonUnsafe.getUnsafe() != null) {
       if (CarbonUnsafe.ISLITTLEENDIAN) {
         val = Integer.reverseBytes(val);
       }
-      CarbonUnsafe.unsafe.putInt(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET, val);
+      CarbonUnsafe.getUnsafe().putInt(bytes, offset + CarbonUnsafe.BYTE_ARRAY_OFFSET, val);
       return offset + ByteUtil.SIZEOF_INT;
     } else {
       for (int i = offset + 3; i > offset; i--) {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java b/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java
index 669d3f2..061721b 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/CarbonProperties.java
@@ -137,22 +137,18 @@ public final class CarbonProperties {
   }
 
   private void validateLockType() {
-    String lockTypeConfigured = carbonProperties.getProperty(CarbonCommonConstants.LOCK_TYPE);
-    if (null != lockTypeConfigured) {
-      lockTypeConfigured = lockTypeConfigured.toUpperCase();
-      switch (lockTypeConfigured) {
-        // if user is setting the lock type as CARBON_LOCK_TYPE_ZOOKEEPER then no need to validate
-        // else validate based on the file system type for LOCAL file system lock will be
-        // CARBON_LOCK_TYPE_LOCAL and for the distributed one CARBON_LOCK_TYPE_HDFS
-        case CarbonCommonConstants.CARBON_LOCK_TYPE_ZOOKEEPER:
-          break;
-        case CarbonCommonConstants.CARBON_LOCK_TYPE_LOCAL:
-        case CarbonCommonConstants.CARBON_LOCK_TYPE_HDFS:
-        default:
-          validateAndConfigureLockType(lockTypeConfigured);
-      }
-    } else {
-      validateAndConfigureLockType(lockTypeConfigured);
+    String lockTypeConfigured = carbonProperties
+        .getProperty(CarbonCommonConstants.LOCK_TYPE, CarbonCommonConstants.LOCK_TYPE_DEFAULT);
+    switch (lockTypeConfigured.toUpperCase()) {
+      // if user is setting the lock type as CARBON_LOCK_TYPE_ZOOKEEPER then no need to validate
+      // else validate based on the file system type for LOCAL file system lock will be
+      // CARBON_LOCK_TYPE_LOCAL and for the distributed one CARBON_LOCK_TYPE_HDFS
+      case CarbonCommonConstants.CARBON_LOCK_TYPE_ZOOKEEPER:
+        break;
+      case CarbonCommonConstants.CARBON_LOCK_TYPE_LOCAL:
+      case CarbonCommonConstants.CARBON_LOCK_TYPE_HDFS:
+      default:
+        validateAndConfigureLockType(lockTypeConfigured);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java b/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
index 15512a8..3bf837b 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
@@ -304,8 +304,9 @@ public final class CarbonUtil {
    */
   private static void deleteRecursive(File f) throws IOException {
     if (f.isDirectory()) {
-      if (f.listFiles() != null) {
-        for (File c : f.listFiles()) {
+      File[] files = f.listFiles();
+      if (null != files) {
+        for (File c : files) {
           deleteRecursive(c);
         }
       }
@@ -950,6 +951,7 @@ public final class CarbonUtil {
           fileReader.finish();
         } catch (IOException e) {
           // ignore the exception as nothing we can do about it
+          fileReader = null;
         }
       }
     }
@@ -1438,7 +1440,8 @@ public final class CarbonUtil {
     return valueEncoderMeta;
   }
 
-  public static byte[] serializeEncodeMetaUsingByteBuffer(ValueEncoderMeta valueEncoderMeta) {
+  public static byte[] serializeEncodeMetaUsingByteBuffer(ValueEncoderMeta valueEncoderMeta)
+      throws IOException {
     ByteBuffer buffer = null;
     switch (valueEncoderMeta.getType()) {
       case LONG:
@@ -1463,6 +1466,8 @@ public final class CarbonUtil {
         buffer = ByteBuffer.allocate(CarbonCommonConstants.INT_SIZE_IN_BYTE + 3);
         buffer.putChar(valueEncoderMeta.getTypeInChar());
         break;
+      default:
+        throw new IOException("Unsupported datatype: " + valueEncoderMeta.getType());
     }
     buffer.putInt(0); // decimal point, not used
     buffer.put(valueEncoderMeta.getDataTypeSelected());

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/util/DataTypeConverterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/DataTypeConverterImpl.java b/core/src/main/java/org/apache/carbondata/core/util/DataTypeConverterImpl.java
index c71a4d0..afc81bf 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/DataTypeConverterImpl.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/DataTypeConverterImpl.java
@@ -35,7 +35,7 @@ public class DataTypeConverterImpl implements DataTypeConverter, Serializable {
   }
 
   public byte[] convertFromStringToByte(Object data) {
-    return data.toString().getBytes();
+    return data.toString().getBytes(CarbonCommonConstants.DEFAULT_CHARSET_CLASS);
   }
 
   public Object convertFromStringToUTF8String(Object data) {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
index 6e54f1f..2cd7ce5 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
@@ -154,7 +154,11 @@ public final class DataTypeUtil {
           bigDecimalMsrValue =
               bigDecimalMsrValue.setScale(carbonMeasure.getScale(), RoundingMode.HALF_UP);
         }
-        return normalizeDecimalValue(bigDecimalMsrValue, carbonMeasure.getPrecision());
+        if (null != bigDecimalMsrValue) {
+          return normalizeDecimalValue(bigDecimalMsrValue, carbonMeasure.getPrecision());
+        } else {
+          return bigDecimalMsrValue;
+        }
       default:
         return measurePage.getDouble(index);
     }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/500654e6/core/src/main/java/org/apache/carbondata/core/util/comparator/Comparator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/comparator/Comparator.java b/core/src/main/java/org/apache/carbondata/core/util/comparator/Comparator.java
index 1f43c7c..5681364 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/comparator/Comparator.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/comparator/Comparator.java
@@ -120,13 +120,7 @@ class DoubleSerializableComparator implements SerializableComparator {
     } else if (key2 == null) {
       return 1;
     }
-    if ((double) key1 < (double) key2) {
-      return -1;
-    } else if ((double) key1 > (double) key2) {
-      return 1;
-    } else {
-      return 0;
-    }
+    return ((Double)key1).compareTo((Double)key2);
   }
 }