protected Tuple populateListOfAllSpaces(List<Tuple> admins) {
        Tuple identifyAdmin = new Tuple(3,"identifyadminquery");
        identifyAdmin.hasAnswered = Boolean.FALSE;
        space.write(identifyAdmin, SemiSpace.ONE_DAY);

        Tuple iaq = new Tuple(3,"identifyadminquery");
        iaq.hasAnswered = Boolean.TRUE;

        Tuple masterFound = null;
        Tuple answer = null;
        long waitFor = 750;
        do {
            answer = (Tuple)space.take(iaq, waitFor);
            // When the first answer has arrived, the others, if any, should come close behind.
            waitFor = 250;
            if (answer != null) {
                admins.add(answer);
                if (Boolean.TRUE.equals(answer.amIAdmin)) {
                    if (masterFound != null) {
                        log.logError("More than one admin found, both " + masterFound.idx + " and " + answer.idx, null);
                    }
                    masterFound = answer;
                }
            }
            // Looping until we do not find any more admins
        } while (answer != null);

        while ( space.takeIfExists(new Tuple(3,"identifyadminquery")) != null) { // NOSONAR
            // Remove identity query from space as we do not need it anymore. If more than one present, we have a race condition (not likely)
        }

        return masterFound;
    }