@Override
  public void run() {
    logger.debug("Update file notification message received.");

    H2HSession session;
    try {
      session = networkManager.getSession();
    } catch (NoSessionException e) {
      logger.error("No user seems to be logged in.");
      return;
    }

    UserProfileManager profileManager = session.getProfileManager();

    UserProfile userProfile;
    try {
      userProfile = profileManager.readUserProfile();
    } catch (GetFailedException e) {
      logger.error("Couldn't load user profile.", e);
      return;
    }

    Index updatedFile = userProfile.getFileById(fileKey);
    if (updatedFile == null) {
      logger.error("Got notified about a file we don't know.");
      return;
    }

    // trigger event
    getEventBus()
        .publish(
            new FileUpdateEvent(updatedFile.asFile(session.getRootFile()), updatedFile.isFile()));
  }