void update(Collection<Member> members) {
        QuorumState previousQuorumState = quorumState;
        QuorumState newQuorumState = QuorumState.ABSENT;
        try {
            boolean present = quorumFunction.apply(members);
            newQuorumState = present ? QuorumState.PRESENT : QuorumState.ABSENT;
        } catch (Exception e) {
            ILogger logger = nodeEngine.getLogger(QuorumService.class);
            logger.severe("Quorum function of quorum: " + quorumName + " failed! Quorum status is set to "
                    + newQuorumState, e);
        }

        quorumState = newQuorumState;
        if (previousQuorumState != newQuorumState) {
            createAndPublishEvent(members, newQuorumState == QuorumState.PRESENT);
        }
    }
void update ( Collection < Member > members ) { QuorumState previousQuorumState = quorumState ; QuorumState newQuorumState = QuorumState . ABSENT ; try { boolean present = quorumFunction . apply ( members ) ; newQuorumState = present ? QuorumState . PRESENT : QuorumState . ABSENT ; } catch ( Exception e ) { ILogger logger = nodeEngine . getLogger ( QuorumService . class ) ; logger . severe ( "Quorum function of quorum: " + quorumName + " failed! Quorum status is set to " + newQuorumState , e ) ; } quorumState = newQuorumState ; if ( previousQuorumState != newQuorumState ) { createAndPublishEvent ( members , newQuorumState == QuorumState . PRESENT ) ; } }
Determines if the quorum is present for the given member collection, caches the result and publishes an event under
the {@link #quorumName} topic if there was a change in presence.
<p/>
<strong>This method is not thread safe and should not be called concurrently.</strong>

@param members the members for which the presence is determined