docs: @Override
    public void handlePieceCompleted(final SharingPeer peer, final Piece piece)
            throws IOException {
      final SharedTorrent torrent = peer.getTorrent();
      final String torrentHash = torrent.getHexInfoHash();
      try {
        final Future<?> validationFuture = myPieceValidatorExecutor.submit(new Runnable() {
          @Override
          public void run() {
            validatePieceAsync(torrent, piece, torrentHash, peer);
          }
        });
        torrent.markCompletedAndAddValidationFuture(piece, validationFuture);
      } catch (RejectedExecutionException e) {
        torrent.markUncompleted(piece);
        LoggerUtils.warnWithMessageAndDebugDetails(logger, "Unable to submit validation task for torrent {}", torrentHash, e);
      }
    }