code: @Override
    public void run() {
      if (!isRegistered()) {
        try {
          register();
        } catch (IOException ex) {
          throw new RuntimeException("Failed to register prefix, aborting.", ex);
        }
      }
  
      // continuously serve packets
      while (true) {
        try {
          synchronized (face) {
            face.processEvents();
          }
        } catch (IOException ex) {
          logger.log(Level.SEVERE, "Failed to process events.", ex);
        } catch (EncodingException ex) {
          logger.log(Level.SEVERE, "Failed to parse bytes.", ex);
        }
      }
    }
docs: {@inheritDoc}