Index: serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardListObjectInspector.java =================================================================== --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardListObjectInspector.java (revision 964193) +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardListObjectInspector.java (working copy) @@ -56,7 +56,7 @@ } // We support both List and Object[] // so we have to do differently. - boolean isArray = data.getClass().isArray(); + boolean isArray = ! (data instanceof List); if (isArray) { Object[] list = (Object[]) data; if (index < 0 || index >= list.length) { @@ -78,7 +78,7 @@ } // We support both List and Object[] // so we have to do differently. - boolean isArray = data.getClass().isArray(); + boolean isArray = ! (data instanceof List); if (isArray) { Object[] list = (Object[]) data; return list.length; @@ -94,7 +94,7 @@ } // We support both List and Object[] // so we have to do differently. - if (data.getClass().isArray()) { + if (! (data instanceof List)) { data = java.util.Arrays.asList((Object[]) data); } List list = (List) data; Index: serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/UnionStructObjectInspector.java =================================================================== --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/UnionStructObjectInspector.java (revision 964193) +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/UnionStructObjectInspector.java (working copy) @@ -112,7 +112,7 @@ Object fieldData; // We support both List and Object[] // so we have to do differently. - if (data.getClass().isArray()) { + if (! (data instanceof List)) { Object[] list = (Object[]) data; assert (list.length == unionObjectInspectors.size()); fieldData = list[f.structID]; @@ -133,7 +133,7 @@ } // We support both List and Object[] // so we have to do differently. - if (data.getClass().isArray()) { + if (! (data instanceof List)) { data = java.util.Arrays.asList((Object[]) data); } List list = (List) data; Index: serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardStructObjectInspector.java =================================================================== --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardStructObjectInspector.java (revision 964193) +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardStructObjectInspector.java (working copy) @@ -135,7 +135,7 @@ } // We support both List and Object[] // so we have to do differently. - boolean isArray = data.getClass().isArray(); + boolean isArray = ! (data instanceof List); if (!isArray && !(data instanceof List)) { return data; } @@ -170,7 +170,7 @@ } // We support both List and Object[] // so we have to do differently. - if (data.getClass().isArray()) { + if (! (data instanceof List)) { data = java.util.Arrays.asList((Object[]) data); } List list = (List) data; Index: ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java (revision 964193) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java (working copy) @@ -191,6 +191,7 @@ protected transient HashMap, LongWritable> statsMap = new HashMap, LongWritable>(); protected transient OutputCollector out; protected transient Log LOG = LogFactory.getLog(this.getClass().getName()); + protected transient boolean isLogInfoEnabled = LOG.isInfoEnabled(); protected transient String alias; protected transient Reporter reporter; protected transient String id; @@ -665,7 +666,7 @@ } } - if (LOG.isInfoEnabled()) { + if (isLogInfoEnabled) { cntr++; if (cntr == nextCntr) { LOG.info(id + " forwarding " + cntr + " rows");