in src/main/cpp/bootstrap/platformlauncher.cpp [500:524]
bool PlatformLauncher::shouldAutoUpdateClusters(bool firstStart) {
bool runUpdater = false;
string cl = processAutoUpdateCL() ? auClusters : clusters;
checkForNewUpdater(platformDir.c_str());
runUpdater = shouldAutoUpdate(firstStart, platformDir.c_str());
const char delim = ';';
string::size_type start = cl.find_first_not_of(delim, 0);
string::size_type end = cl.find_first_of(delim, start);
while (string::npos != end || string::npos != start) {
string cluster = cl.substr(start, end - start);
checkForNewUpdater(cluster.c_str());
if (!runUpdater) {
runUpdater = shouldAutoUpdate(firstStart, cluster.c_str());
}
start = cl.find_first_not_of(delim, end);
end = cl.find_first_of(delim, start);
}
checkForNewUpdater(userDir.c_str());
if (!runUpdater) {
runUpdater = shouldAutoUpdate(firstStart, userDir.c_str());
}
return runUpdater;
}