in server/src/jetbrains/buildServer/sharedResources/pages/usage/BuildUsedResourcesReportPage.java [47:81]
protected void fillModel(@NotNull final Map<String, Object> model, @NotNull final HttpServletRequest request, @NotNull final SBuild build) {
final List<UsedResource> usedResources = myReport.load(build);
usedResources.sort((r1, r2) -> r1.getResource().getName().compareToIgnoreCase(r2.getResource().getName()));
final Map<String, SProject> projects = new HashMap<>();
final Set<String> failed = new HashSet<>();
final ProjectManager pm = myServer.getProjectManager();
final Map<String, SProject> resourceOrigins = new HashMap<>();
final List<Pair<String, String>> parameters = new ArrayList<>();
usedResources.forEach(ur -> {
String id = ur.getResource().getProjectId();
if (projects.containsKey(id)) {
resourceOrigins.put(ur.getResource().getName(), projects.get(id));
} else {
if (!failed.contains(id)) {
try {
SProject project = pm.findProjectById(id);
if (project != null) {
projects.put(id, project);
resourceOrigins.put(ur.getResource().getName(), project);
}
} catch (AccessDeniedException e) {
failed.add(id);
}
}
}
parameters.addAll(myLocks.asBuildParameters(ur.getLocks()).entrySet().stream()
.map(e -> new Pair<>(e.getKey(), e.getValue()))
.collect(Collectors.toList()));
});
parameters.sort((p1, p2) -> p1.getFirst().compareToIgnoreCase(p2.getFirst()));
model.put("resourceOrigins", resourceOrigins);
model.put("usedResources", usedResources);
model.put("parameters", parameters);
}