private int nextFree() { int ret = (int) freeList.setOne(nextSet); if (ret == DirectBitSet.NOT_FOUND) { ret = (int) freeList.setOne(0); if (ret == DirectBitSet.NOT_FOUND) throw new IllegalStateException("Segment is full, no free entries found"); } nextSet = ret + 1; return ret; }