protected void finish() {
    logger.trace("finish() - start");

    if (controller.finish(this)) {
      this.dispose();
    }

    logger.trace("finish() - end");
  }