docs: public boolean validateWithFillDefault()
              throws ParallelTaskInvalidException {
  
          /**
           * for the client: will use the current default. note that that can be
           * overwritten!
           */
  
          // validate if there are no hosts anymore
          if (this.targetHostMeta.getHosts().isEmpty()) {
              throw new ParallelTaskInvalidException(
                      "Empty targetHosts! Please set target hosts and try again...return..");
          }
          if (requestProtocol == null) {
              requestProtocol = RequestProtocol.HTTP;
              logger.info("USE DEFAULT HTTP PROTOCOL: Missing Protocol HTTP/HTTPS. SET protocol as default HTTP");
          }
  
          // concurrency check range
          if (this.getConcurrency() <= 0
                  || this.getConcurrency() > ParallecGlobalConfig.maxCapacity) {
              logger.info("USE DEFAULT CONCURRENCY: User did not specify max concurrency "
                      + "or its out of max allowed capacity: "
                      + ParallecGlobalConfig.concurrencyDefault);
              this.setConcurrency(ParallecGlobalConfig.concurrencyDefault);
          }
  
          if (this.config == null) {
              logger.info("USE DEFAULT CONFIG: User did not specify"
                      + " config for task/actor timeout etc. ");
              this.config = new ParallelTaskConfig();
          }
  
          // check if ssh
          if (this.requestProtocol == RequestProtocol.SSH) {
  
              // this will throw ParallelTaskInvalidException
              this.sshMeta.validation();
  
              if (this.getConcurrency() > ParallecGlobalConfig.concurrencySshLimit) {
                  logger.info("SSH CONCURRENCY LIMIT is lower. Apply value as: "
                          + ParallecGlobalConfig.concurrencySshLimit);
                  this.setConcurrency(ParallecGlobalConfig.concurrencySshLimit);
              }
              if (this.httpMeta.isPollable())
                  throw new ParallelTaskInvalidException(
                          "Not support pollable job with SSH.");
  
              this.httpMeta.initValuesNa();
              // remove tcp object
              this.tcpMeta = null;
              // remove ping object
              this.pingMeta = null;
              // remove udp object
              this.udpMeta = null;
          } else if (this.requestProtocol == RequestProtocol.PING) {
  
              if (this.httpMeta.isPollable())
                  throw new ParallelTaskInvalidException(
                          "Not support pollable job with PING.");
              this.httpMeta.initValuesNa();
  
              this.pingMeta.validation();
              // remove ssh object
              this.sshMeta = null;
              // remove tcp object
              this.tcpMeta = null;
              // remove udp object
              this.udpMeta = null;
  
              // TCP
          } else if (this.requestProtocol == RequestProtocol.TCP) {
              if (this.httpMeta.isPollable())
                  throw new ParallelTaskInvalidException(
                          "Not support pollable job with TCP.");
              this.httpMeta.initValuesNa();
  
              this.tcpMeta.validation();
              // remove ssh object
              this.sshMeta = null;
              // remove ping object
              this.pingMeta = null;
              // remove udp object
              this.udpMeta = null;
              // UDP
          } else if (this.requestProtocol == RequestProtocol.UDP) {
              if (this.httpMeta.isPollable())
                  throw new ParallelTaskInvalidException(
                          "Not support pollable job with UDP.");
              this.httpMeta.initValuesNa();
  
              this.udpMeta.validation();
              // remove tcp object
              this.tcpMeta = null;
              // remove ssh object
              this.sshMeta = null;
              // remove ping object
              this.pingMeta = null;
              // HTTP/HTTPS
          } else {
  
              this.httpMeta.validation();
              // remove ssh object
              this.sshMeta = null;
              // remove tcp object
              this.tcpMeta = null;
              // remove ping object
              this.pingMeta = null;
              // remove udp object
              this.udpMeta = null;
          }// end else
  
          return true;
      }