@Override
  public String toString() {
    if (received != null) {
      StringBuilder sb = new StringBuilder();
      sb.append("e(n=").append(nextVersion).append("; p=").append(previousVersion);
      if (receivedBaseVersion != previousVersion + 1) {
        sb.append("; b=").append(receivedBaseVersion);
      }
      int lastBit = (int) (nextVersion - receivedBaseVersion);
      sb.append("; rb=[");
      int i = received.nextSetBit((int) (previousVersion - receivedBaseVersion + 1));
      if (i >= 0) {
        sb.append(i);
        for (i = received.nextSetBit(i + 1); (0 < i) && (i < lastBit); i =
            received.nextSetBit(i + 1)) {
          sb.append(',').append(i);
        }
      }
      sb.append(']');
      return sb.toString();
    }
    return "e(n=" + nextVersion + " p=" + previousVersion + "; rb=[])";
  }
checks to see if any of the received versions can be merged into the start/end version numbers
geode-core/src/main/java/org/apache/geode/internal/cache/versions/RVVExceptionB.java