Index: src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java (revision 1340913) +++ src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java (working copy) @@ -477,8 +477,9 @@ int length = list.size(); out.writeInt(length); for (int i = 0; i < length; i++) { - writeObject(out, list.get(i), - list.get(i).getClass(), conf); + Object elem = list.get(i); + writeObject(out, elem, + elem == null ? Writable.class : elem.getClass(), conf); } } else if (declClass == String.class) { // String Text.writeString(out, (String)instanceObj); Index: src/test/java/org/apache/hadoop/hbase/io/TestHbaseObjectWritable.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/io/TestHbaseObjectWritable.java (revision 1340913) +++ src/test/java/org/apache/hadoop/hbase/io/TestHbaseObjectWritable.java (working copy) @@ -198,6 +198,14 @@ obj = doType(conf, list, List.class); assertTrue(obj instanceof List); Assert.assertArrayEquals(list.toArray(), ((List)obj).toArray() ); + //List.class with null values + list = new ArrayList(); + list.add("hello"); + list.add("world"); + list.add(null); + obj = doType(conf, list, List.class); + assertTrue(obj instanceof List); + Assert.assertArrayEquals(list.toArray(), ((List)obj).toArray() ); //ArrayList.class ArrayList arr = new ArrayList(); arr.add("hello");