public void populate(@NotNull AbstractProject project) { synchronized (populateLock) { Run lastBuild = project.getLastBuild(); if (lastBuild == null) { return; } if (lastBuild.getNumber() <= oldest) { return; } for (int number = lastBuild.getNumber(); number > oldest; number--) { Run build = project.getBuildByNumber(number); if (build == null) { continue; } String externalizableId = build.getExternalizableId(); size++; put("projectName", project.getName(), externalizableId); populateWithChangeInformation(build, externalizableId); populateWithCauseInformation(build, externalizableId); populateWithParameters(build, externalizableId); } oldest = lastBuild.getNumber(); } }