> > You should test that getSlicePredicate(conf).equals(originalPredicate) > > That's it! The byte arrays are slightly different after setting it on the Hadoop config. Below is a simple test which demonstrates the bug -- it should print "true" but instead prints "false". Please let me know if a bug gets raised so I can track it.
Thanks Mark import org.apache.cassandra.hadoop.ConfigHelper; import org.apache.cassandra.thrift.SlicePredicate; import org.apache.hadoop.conf.Configuration; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; /** * A class which demonstrates a bug in Cassandra's ConfigHelper. */ public class SlicePredicateTest { public static void main(String[] args) { long columnValue = 1271253600000l; byte[] columnBytes = getBytes(columnValue); List<byte[]> columnNames = new ArrayList<byte[]>(); columnNames.add(columnBytes); SlicePredicate originalPredicate = new SlicePredicate(); originalPredicate.setColumn_names(columnNames); Configuration conf = new Configuration(); ConfigHelper.setSlicePredicate(conf, originalPredicate); System.out.println(ConfigHelper.getSlicePredicate(conf).equals(originalPredicate)); } private static byte[] getBytes(long l) { byte[] bytes = new byte[8]; ByteBuffer.wrap(bytes).putLong(l); return bytes; } }