public static void andAckSet(Position currentPosition, Position otherPosition) {
        if (currentPosition == null || otherPosition == null) {
            return;
        }
        AckSetState currentAckSetState = AckSetStateUtil.getAckSetState(currentPosition);
        AckSetState otherAckSetState = AckSetStateUtil.getAckSetState(otherPosition);
        currentAckSetState.setAckSet(andAckSet(currentAckSetState.getAckSet(), otherAckSetState.getAckSet()));
    }
@Test
    public void andAckSetTest() {
        Position positionOne = AckSetStateUtil.createPositionWithAckSet(1, 1, new long[0]);
        Position positionTwo = AckSetStateUtil.createPositionWithAckSet(1, 2, new long[0]);
        BitSet bitSetOne = new BitSet();
        BitSet bitSetTwo = new BitSet();
        bitSetOne.set(0);
        bitSetOne.set(2);
        bitSetOne.set(4);
        bitSetOne.set(6);
        bitSetOne.set(8);
        AckSetState positionOneAckSetState = AckSetStateUtil.getAckSetState(positionOne);
        positionOneAckSetState.setAckSet(bitSetOne.toLongArray());
        AckSetState positionTwoAckSetState = AckSetStateUtil.getAckSetState(positionTwo);
        positionTwoAckSetState.setAckSet(bitSetTwo.toLongArray());
        andAckSet(positionOne, positionTwo);
        BitSetRecyclable bitSetRecyclable = BitSetRecyclable.valueOf(positionOneAckSetState.getAckSet());
        assertTrue(bitSetRecyclable.isEmpty());

        bitSetTwo.set(2);
        bitSetTwo.set(4);

        positionOneAckSetState.setAckSet(bitSetOne.toLongArray());
        positionTwoAckSetState.setAckSet(bitSetTwo.toLongArray());
        andAckSet(positionOne, positionTwo);

        bitSetRecyclable = BitSetRecyclable.valueOf(positionOneAckSetState.getAckSet());
        BitSetRecyclable bitSetRecyclableTwo = BitSetRecyclable.valueOf(bitSetTwo.toLongArray());
        assertEquals(bitSetRecyclable, bitSetRecyclableTwo);

    }