public Status getStatus() { synchronized (builds) { if (builds.isEmpty()) { return Status.SUCCESSFUL; } // Status status = Status.SUCCESSFUL; int slide = monitor.settings.getStatusWindow(); List<BuildFragment> window; if (slide == 0 || builds.size() <= slide) { window = builds; } else { window = builds.subList(builds.size() - slide, builds.size()); } for (BuildFragment build : window) { if (build.getStatus() == Status.FAILED || build.getStatus() == Status.CANCELLED) { return Status.FAILED; } } return Status.SUCCESSFUL; } }