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);
}