in src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHelper.java [51:113]
public static List<VotingView> listOpenNonWinningVotings(
final ResourceResolver resourceResolver, final Config config) {
if (config==null) {
logger.info("listOpenNonWinningVotings: config is null, bundle likely deactivated.");
return new ArrayList<VotingView>();
}
final String ongoingVotingsPath = config.getOngoingVotingsPath();
final Resource ongoingVotingsResource = resourceResolver
.getResource(ongoingVotingsPath);
if (ongoingVotingsResource == null) {
// it is legal that at this stage there is no ongoingvotings node yet
// for example when there was never a voting yet
logger.debug("listOpenNonWinningVotings: no ongoing votings parent resource found");
return new ArrayList<VotingView>();
}
final Iterable<Resource> children = ongoingVotingsResource.getChildren();
final Iterator<Resource> it = children.iterator();
final List<VotingView> result = new LinkedList<VotingView>();
if (!it.hasNext()) {
return result;
}
while (it.hasNext()) {
Resource aChild = it.next();
VotingView c = new VotingView(aChild);
String matchesLiveView;
try {
matchesLiveView = c.matchesLiveView(config);
} catch (Exception e) {
logger.error("listOpenNonWinningVotings: could not compare voting with live view: "+e, e);
continue;
}
boolean ongoingVoting = c.isOngoingVoting(config);
boolean hasNoVotes = c.hasNoVotes();
boolean isWinning = c.isWinning();
if (matchesLiveView == null
&& ongoingVoting && !hasNoVotes
&& !isWinning) {
if (logger.isDebugEnabled()) {
logger.debug("listOpenNonWinningVotings: found an open voting: "
+ aChild
+ ", properties="
+ ResourceHelper.getPropertiesForLogging(aChild));
}
result.add(c);
} else {
if (logger.isDebugEnabled()) {
logger.debug("listOpenNonWinningVotings: a non-open voting: "
+ aChild
+ ", matches live: " + matchesLiveView
+ ", is ongoing: " + ongoingVoting
+ ", has no votes: " + hasNoVotes
+ ", is winning: " + isWinning
+ ", properties="
+ ResourceHelper.getPropertiesForLogging(aChild));
}
}
}
if (logger.isDebugEnabled()) {
logger.debug("listOpenNonWinningVotings: votings found: "
+ result.size());
}
return result;
}