Yonik, should this not be the other way round, or I missed something? "this" is always an instance of OpenBitSet
if (!(o instanceof OpenBitSet)) return false; instead of: public boolean equals(Object o) { ... if (!(this instanceof OpenBitSet)) return false; ...