Source:
public synchronized void load() { try { Map.Entry<ManagerSpec, Map<ResourceGroupIdTemplate, ResourceGroupSpec>> specsFromDb = buildSpecsFromDb(); ManagerSpec managerSpec = specsFromDb.getKey(); Map<ResourceGroupIdTemplate, ResourceGroupSpec> resourceGroupSpecs = specsFromDb.getValue(); Set<ResourceGroupIdTemplate> changedSpecs = new HashSet<>(); Set<ResourceGroupIdTemplate> deletedSpecs = Sets.difference(this.resourceGroupSpecs.keySet(), resourceGroupSpecs.keySet()); for (Map.Entry<ResourceGroupIdTemplate, ResourceGroupSpec> entry : resourceGroupSpecs.entrySet()) { if (!entry.getValue().sameConfig(this.resourceGroupSpecs.get(entry.getKey()))) { changedSpecs.add(entry.getKey()); } } this.resourceGroupSpecs = resourceGroupSpecs; this.cpuQuotaPeriod.set(managerSpec.getCpuQuotaPeriod()); this.rootGroups.set(managerSpec.getRootGroups()); List<ResourceGroupSelector> selectors = buildSelectors(managerSpec); if (exactMatchSelectorEnabled) { ImmutableList.Builder<ResourceGroupSelector> builder = ImmutableList.builder(); builder.add(new DbSourceExactMatchSelector(environment, dao)); builder.addAll(selectors); this.selectors.set(builder.build()); } else { this.selectors.set(selectors); } configureChangedGroups(changedSpecs); disableDeletedGroups(deletedSpecs); if (lastRefresh.get() > 0) { for (ResourceGroupIdTemplate deleted : deletedSpecs) { log.info("Resource group spec deleted %s", deleted); } for (ResourceGroupIdTemplate changed : changedSpecs) { log.info("Resource group spec % changed to %s", changed, resourceGroupSpecs.get(changed)); } } else { log.info("Loaded %s selectors and %s resource groups from database", this.selectors.get().size(), this.resourceGroupSpecs.size()); } lastRefresh.set(System.nanoTime()); } catch (Throwable e) { if (succinctNanos(System.nanoTime() - lastRefresh.get()).compareTo(maxRefreshInterval) > 0) { lastRefresh.set(0); } log.error(e, "Error loading configuration from db"); } }

Target:
public synchronized void load() { try { Map.Entry<ManagerSpec, Map<ResourceGroupIdTemplate, ResourceGroupSpec>> specsFromDb = buildSpecsFromDb(); ManagerSpec managerSpec = specsFromDb.getKey(); Map<ResourceGroupIdTemplate, ResourceGroupSpec> resourceGroupSpecs = specsFromDb.getValue(); Set<ResourceGroupIdTemplate> changedSpecs = new HashSet<>(); Set<ResourceGroupIdTemplate> deletedSpecs = Sets.difference(this.resourceGroupSpecs.keySet(), resourceGroupSpecs.keySet()); for (Map.Entry<ResourceGroupIdTemplate, ResourceGroupSpec> entry : resourceGroupSpecs.entrySet()) { if (!entry.getValue().sameConfig(this.resourceGroupSpecs.get(entry.getKey()))) { changedSpecs.add(entry.getKey()); } } this.resourceGroupSpecs = resourceGroupSpecs; this.cpuQuotaPeriod.set(managerSpec.getCpuQuotaPeriod()); this.rootGroups.set(managerSpec.getRootGroups()); List<ResourceGroupSelector> selectors = buildSelectors(managerSpec); if (exactMatchSelectorEnabled) { ImmutableList.Builder<ResourceGroupSelector> builder = ImmutableList.builder(); builder.add(new DbSourceExactMatchSelector(environment, dao)); builder.addAll(selectors); this.selectors.set(builder.build()); } else { this.selectors.set(selectors); } configureChangedGroups(changedSpecs); disableDeletedGroups(deletedSpecs); if (lastRefresh.get() > 0) { for (ResourceGroupIdTemplate deleted : deletedSpecs) { log.info("Resource group spec deleted %s", deleted); } for (ResourceGroupIdTemplate changed : changedSpecs) { log.info("Resource group spec %s changed to %s", changed, resourceGroupSpecs.get(changed)); } } else { log.info("Loaded %s selectors and %s resource groups from database", this.selectors.get().size(), this.resourceGroupSpecs.size()); } lastRefresh.set(System.nanoTime()); } catch (Throwable e) { if (succinctNanos(System.nanoTime() - lastRefresh.get()).compareTo(maxRefreshInterval) > 0) { lastRefresh.set(0); } log.error(e, "Error loading configuration from db"); } }