Author: hashutosh
Date: Sat Aug 30 22:17:17 2014
New Revision: 1621544

URL: http://svn.apache.org/r1621544
Log:
HIVE-7911 : Guaranteed ClassCastException in AccumuloRangeGenerator (Lars 
Francke via Ashutosh Chauhan)

Modified:
    
hive/trunk/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/predicate/AccumuloRangeGenerator.java

Modified: 
hive/trunk/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/predicate/AccumuloRangeGenerator.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/predicate/AccumuloRangeGenerator.java?rev=1621544&r1=1621543&r2=1621544&view=diff
==============================================================================
--- 
hive/trunk/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/predicate/AccumuloRangeGenerator.java
 (original)
+++ 
hive/trunk/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/predicate/AccumuloRangeGenerator.java
 Sat Aug 30 22:17:17 2014
@@ -42,6 +42,7 @@ import org.apache.hadoop.hive.ql.plan.Ex
 import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
 import org.apache.hadoop.hive.serde2.lazy.LazyUtils;
 import org.apache.hadoop.hive.serde2.objectinspector.ConstantObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
 import 
org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableConstantBooleanObjectInspector;
 import 
org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableConstantByteObjectInspector;
 import 
org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableConstantDoubleObjectInspector;
@@ -57,7 +58,7 @@ import org.slf4j.LoggerFactory;
  *
  */
 public class AccumuloRangeGenerator implements NodeProcessor {
-  private static final Logger log = 
LoggerFactory.getLogger(AccumuloRangeGenerator.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(AccumuloRangeGenerator.class);
 
   private final AccumuloPredicateHandler predicateHandler;
   private final HiveAccumuloRowIdColumnMapping rowIdMapping;
@@ -162,7 +163,7 @@ public class AccumuloRangeGenerator impl
           andRanges = newRanges;
         }
       } else {
-        log.error("Expected Range from {} but got {}", nd, nodeOutput);
+        LOG.error("Expected Range from {} but got {}", nd, nodeOutput);
         throw new IllegalArgumentException("Expected Range but got "
             + nodeOutput.getClass().getName());
       }
@@ -181,7 +182,7 @@ public class AccumuloRangeGenerator impl
         List<Range> childRanges = (List<Range>) nodeOutput;
         orRanges.addAll(childRanges);
       } else {
-        log.error("Expected Range from " + nd + " but got " + nodeOutput);
+        LOG.error("Expected Range from {} but got {}", nd, nodeOutput);
         throw new IllegalArgumentException("Expected Range but got "
             + nodeOutput.getClass().getName());
       }
@@ -324,27 +325,9 @@ public class AccumuloRangeGenerator impl
    */
   protected Text getBinaryValue(ConstantObjectInspector objInspector) throws 
IOException {
     ByteArrayOutputStream out = new ByteArrayOutputStream();
-    if (objInspector instanceof WritableConstantBooleanObjectInspector) {
+    if (objInspector instanceof PrimitiveObjectInspector) {
       LazyUtils.writePrimitive(out, objInspector.getWritableConstantValue(),
-          (WritableConstantBooleanObjectInspector) objInspector);
-    } else if (objInspector instanceof WritableConstantByteObjectInspector) {
-      LazyUtils.writePrimitive(out, objInspector.getWritableConstantValue(),
-          (WritableConstantByteObjectInspector) objInspector);
-    } else if (objInspector instanceof WritableConstantShortObjectInspector) {
-      LazyUtils.writePrimitive(out, objInspector.getWritableConstantValue(),
-          (WritableConstantShortObjectInspector) objInspector);
-    } else if (objInspector instanceof WritableConstantIntObjectInspector) {
-      LazyUtils.writePrimitive(out, objInspector.getWritableConstantValue(),
-          (WritableConstantIntObjectInspector) objInspector);
-    } else if (objInspector instanceof WritableConstantLongObjectInspector) {
-      LazyUtils.writePrimitive(out, objInspector.getWritableConstantValue(),
-          (WritableConstantLongObjectInspector) objInspector);
-    } else if (objInspector instanceof WritableConstantDoubleObjectInspector) {
-      LazyUtils.writePrimitive(out, objInspector.getWritableConstantValue(),
-          (WritableConstantDoubleObjectInspector) objInspector);
-    } else if (objInspector instanceof WritableConstantFloatObjectInspector) {
-      LazyUtils.writePrimitive(out, objInspector.getWritableConstantValue(),
-          (WritableConstantDoubleObjectInspector) objInspector);
+        (PrimitiveObjectInspector) objInspector);
     } else {
       return getUtf8Value(objInspector);
     }


Reply via email to