public boolean startCollect() {
if(parent != null && !parent.isCollectRunning()) {
log(Level.TRACE, "parent of %s prevent starting", this);
return false;
}
if(allStarters != null) {
log(Level.DEBUG, "Starting %d starters for %s", allStarters.size(), this);
for(Starter s: allStarters.values()) {
if(parent != null && !parent.isCollectRunning())
return false;
try {
s.doStart();
} catch (Exception e) {
log(Level.ERROR, e, "starting %s failed: %s", s, e);
}
}
}
started = true;
log(Level.DEBUG, "Starting for %s done", this);
return isCollectRunning();
}