Description
Without setting value ZooKeeper DistributedAtomicValue instance returns byte[0]{} as its value, but in #compareAndSet method expectedValue is always non-zero-sized byte array, so in fresh new DistributedAtomicValue with no data in ZooKeeper node test Arrays.equals(byte[4]
{0,0,0,0}, byte[0]{}) for integer and Arrays.equals(byte[8]
{0,0,0,0,0,0,0,0}, byte[0]{}) will always fail. Solution is to not only check with Arrays.equals, but also if one of byte arrays is empty then check if second one has only zero elements.