BlobId readBlobId(InputStream streamlog, InputStream oldStreamlog) throws ContinueException {
    BlobId id = null;
    BlobId idInOld = null;
    boolean caughtException = false;
    boolean caughtExceptionInOld = false;

    try {
      id = new BlobId(new DataInputStream(streamlog), map);
    } catch (IOException e) {
      caughtException = true;
    } catch (IllegalArgumentException e) {
      caughtException = true;
    }

    try {
      idInOld = new BlobId(new DataInputStream(oldStreamlog), map);
    } catch (IOException e) {
      caughtExceptionInOld = true;
    } catch (IllegalArgumentException e) {
      caughtExceptionInOld = true;
    }

    if (!caughtException) {
      if (id.compareTo(idInOld) != 0) {
        throw new ContinueException("id mismatch");
      }
    } else if (!caughtExceptionInOld) {
      throw new ContinueException("blob id could not be deserialized");
    } else {
      throw new ContinueException("blob id could not be deserialized in either.");
    }
    return id;
  }
@return {@code true} if this was a delete record, {@code false} otherwise
@throws ContinueException if there is a deser failure in the new log
ambry-tools/src/main/java/com/github/ambry/store/HardDeleteVerifier.java