public static boolean isAckSetOverlap(long[] currentAckSet, long[] otherAckSet) {
        if (currentAckSet == null || otherAckSet == null) {
            return false;
        }

        BitSetRecyclable currentBitSet = BitSetRecyclable.valueOf(currentAckSet);
        BitSetRecyclable otherBitSet = BitSetRecyclable.valueOf(otherAckSet);
        currentBitSet.flip(0, currentBitSet.size());
        otherBitSet.flip(0, otherBitSet.size());
        currentBitSet.and(otherBitSet);
        boolean isAckSetRepeated = !currentBitSet.isEmpty();
        currentBitSet.recycle();
        otherBitSet.recycle();
        return isAckSetRepeated;
    }
@Test
    public void isAckSetRepeatedTest() {
        BitSet thisBitSet = new BitSet();
        BitSet otherBitSet = new BitSet();

        thisBitSet.set(0, 64);
        otherBitSet.set(0, 64);

        thisBitSet.clear(1, 5);
        otherBitSet.clear(1, 6);
        assertTrue(isAckSetOverlap(thisBitSet.toLongArray(), otherBitSet.toLongArray()));
        otherBitSet.set(1, 5);
        assertFalse(isAckSetOverlap(thisBitSet.toLongArray(), otherBitSet.toLongArray()));
    }