@Override
  public @Nullable Value get(Key key) throws IOException {
    getReadLock().lock();
    try {
      return doGet(key);
    }
    catch (ClosedStorageException ex) {
      throw ex;
    }
    catch (IOException ex) {
      markCorrupted();
      throw ex;
    }
    finally {
      getReadLock().unlock();
    }
  }
@Override
  public @Nullable Value get(Key key)