@JsonIgnore
    @Override
    public Set<String> getAvailableQueryAttributes(final PersonAttributeDaoFilter filter) {
        Set<String> queryAttrs = null;

        for (val currentDao : this.personAttributeDaos) {
            if (filter != null && !filter.choosePersonAttributeDao(currentDao)) {
                continue;
            }
            var handledException = false;
            Set<String> currentDaoQueryAttrs = null;
            try {
                currentDaoQueryAttrs = currentDao.getAvailableQueryAttributes(filter);
                LOGGER.debug("Retrieved possible query attributes [{}] from [{}]", currentDaoQueryAttrs, currentDao);
            } catch (final Exception rte) {
                handledException = handledException || handleRuntimeException(currentDao, rte);
            }

            if (currentDaoQueryAttrs != null) {
                if (queryAttrs == null) {
                    queryAttrs = new LinkedHashSet<>();
                }

                queryAttrs = this.attributeMerger.mergeAvailableQueryAttributes(queryAttrs, currentDaoQueryAttrs);
            }

            if (this.stopOnSuccess && !handledException) {
                LOGGER.debug("Successfully retrieved available query attributes from a child DAO and stopOnSuccess is true, stopping iteration of child DAOs");
                break;
            }
        }

        LOGGER.debug("Aggregated possible query attributes [{}]", queryAttrs);
        if (queryAttrs == null) {
            return null;
        }
        return Set.copyOf(queryAttrs);
    }
Merges the results of calling {@link PersonAttributeDao#getAvailableQueryAttributes(PersonAttributeDaoFilter)} on each child dao using
the configured {@link AttributeMerger#mergeAvailableQueryAttributes(Set, Set)}. If all children return null this
method returns null as well. If any child does not return null this method will not return null.

@see PersonAttributeDao#getAvailableQueryAttributes(PersonAttributeDaoFilter)
core/cas-server-core-authentication-api/src/main/java/org/apereo/cas/authentication/attribute/AbstractAggregatingDefaultQueryPersonAttributeDao.java