@Override
  public Note get(String noteId, String notePath, AuthenticationInfo subject) throws IOException {
    BlobId blobId = makeBlobId(noteId, notePath);
    byte[] contents;
    try {
      contents = storage.readAllBytes(blobId);
    } catch (StorageException se) {
      throw new IOException("Could not read " + blobId.toString() + ": " + se.getMessage(), se);
    }

    try {
      return noteParser.fromJson(noteId, new String(contents, encoding));
    } catch (CorruptedNoteException jpe) {
      throw new IOException(
          "Could note parse as json " + blobId.toString() + jpe.getMessage(), jpe);
    }
  }
@Test
  void testGet_nonexistent() throws Exception {
    zConf.setProperty(ConfVars.ZEPPELIN_NOTEBOOK_GCS_STORAGE_DIR.getVarName(), DEFAULT_URL);
    this.notebookRepo = new GCSNotebookRepo(zConf, noteParser, storage);
    assertThrows(IOException.class, () -> {
      notebookRepo.get("id", "", AUTH_INFO);
    });
  }