It was used in `BasicBFSTraverseVertex` only. 
```
    public int updateBFSLength(BFSTraverseMessage incomingMsg, UPDATELENGTH_TYPE type) {

        int totalBFSLength = incomingMsg.getTotalBFSLength();
        VertexValueWritable vertex = getVertexValue();
        int internalKmerLength = vertex.getInternalKmer().getKmerLetterLength();
        ReadHeadSet readHeadSet;
        int offset;
        switch (type) {
        // remember to account for partial overlaps
        // src or dest, as long as flip, updateLength += offset, otherwise
        // updateLength += kmerLength - offset
            case SRC_OFFSET:
                boolean srcIsFlip = incomingMsg.getSrcReadHeadOrientation() == READHEAD_ORIENTATION.FLIPPED;
                readHeadSet = srcIsFlip ? vertex.getFlippedReadIds() : vertex.getUnflippedReadIds();
                offset = readHeadSet.getOffsetFromReadId(incomingMsg.getReadId());
                return srcIsFlip ? offset : internalKmerLength - offset;
```

If you are sure there is only one offset for each readid, I'd rather use `ceiling` method of TreeSet here.