private List<QueueControl> getQueues(final DurabilityType durability) {
    try {
      List<QueueControl> matchingQueues = new ArrayList<>();
      String[] queues = addressControl.getQueueNames();
      for (String queue : queues) {
        QueueControl coreQueueControl =
            (QueueControl) managementService.getResource(ResourceNames.CORE_QUEUE + queue);

        // Ignore the "special" subscription
        if (coreQueueControl != null
            && !coreQueueControl.getName().equals(addressControl.getAddress())) {
          if (durability == DurabilityType.ALL
              || durability == DurabilityType.DURABLE && coreQueueControl.isDurable()
              || durability == DurabilityType.NON_DURABLE && !coreQueueControl.isDurable()) {
            matchingQueues.add(coreQueueControl);
          }
        }
      }
      return matchingQueues;
    } catch (Exception e) {
      return Collections.emptyList();
    }
  }