@Override
  public void updateWorkspace(UpdateWorkspaceRequest request)
      throws UserNotFoundException, WorkspaceNotUpdatedException {
    logger.debug(request);

    User user = new User();
    user.setId(request.getUserId());
    Item item = new Item(request.getParentItemId());

    Workspace workspace = new Workspace(request.getWorkspaceId());
    workspace.setName(request.getWorkspaceName());
    workspace.setParentItem(item);

    getHandler().doUpdateWorkspace(user, workspace);

    // Create notification
    UpdateWorkspaceNotification notification =
        new UpdateWorkspaceNotification(
            workspace.getId(), workspace.getName(), workspace.getParentItem().getId());
    notification.setRequestId(request.getRequestId());

    // Send notification to owner
    RemoteClient client;
    try {
      client = broker.lookupMulti(user.getId().toString(), RemoteClient.class);
      client.notifyUpdateWorkspace(notification);
    } catch (RemoteException e1) {
      logger.error(String.format("Could not notify user: '******'", user.getId()), e1);
    }
  }