/**
   * syncProbe() Called during incremental discovery Rediscover and parse the load balancing virtual
   * server object that is represented by the given VirtualApplication object
   *
   * @param objects List of existing VirtualApplication objects to be rediscovered
   */
  private void syncProbe(EList<Object> objects) {
    if (!FeaturesManager.vmtMANAGER.isLoadBalancerEnabled()) {
      logger.error("Operations Manager is not licensed for Load Balancer targets");
      return;
    }
    if (!objects.isEmpty() && initProbe() != null) {
      if (logPrefix == "") logPrefix = target.getNameOrAddress() + " : ";
      for (Object object : objects) {
        if (!(object instanceof VirtualApplication)) continue;
        // Get all the lbv servers from NetScaler appliance
        VirtualApplication vApp = (VirtualApplication) object;
        DiscoveryExtension discExt = vApp.getDiscoveryExtension();
        if (logger.isDebugEnabled())
          logger.debug(logPrefix + " rediscovering virtual application " + vApp.toVMTString());

        if (discExt instanceof NetScalerVirtualAppDiscExt) { // lbvserver
          lbvserver server = NetScalerUtil.getLbvServer(session, vApp.getName(), target, logPrefix);
          if (server != null) parseServer(server);
          else exceptions = true;
        } else if (discExt instanceof NetScalerGslbVirtualAppDiscExt) { // gslb vserver
          gslbvserver gslb =
              NetScalerUtil.getGslbvServer(session, vApp.getName(), target, logPrefix);
          if (gslb != null) parseGslbServer(gslb);
          else exceptions = true;
        }
      }
      // If no exceptions clear previous occurrences of DISCOVERY notifications
      if (!exceptions) target.clearNotifications(NotificationCategory.DISCOVERY);
    }
  }