boolean deserializeBlobProperties(InputStream streamlog, InputStream oldStreamlog, boolean isDeleted)
      throws ContinueException {
    boolean caughtException = false;
    boolean caughtExceptionInOld = false;
    BlobProperties props = null;
    BlobProperties oldProps = null;

    try {
      props = MessageFormatRecord.deserializeBlobProperties(streamlog);
    } catch (MessageFormatException e) {
      caughtException = true;
    } catch (IOException e) {
      caughtException = true;
    }

    try {
      oldProps = MessageFormatRecord.deserializeBlobProperties(oldStreamlog);
    } catch (MessageFormatException e) {
      caughtExceptionInOld = true;
    } catch (IOException e) {
      caughtExceptionInOld = true;
    }

    if (!caughtException) {
      if (props.toString().compareTo(oldProps.toString()) != 0) {
        System.out.println("Blob id mismatch!");
        return false;
      }
    } else if (!caughtExceptionInOld) {
      if (isDeleted) {
        corruptDeleted++;
      } else {
        corruptNonDeleted++;
      }
      throw new ContinueException("blob properties could not be deserialized.");
    } else {
      throw new ContinueException("blob properties could not be deserialized in either");
    }
    return true;
  }
@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