@Override public String getWhy() { Hudson hudson = Hudson.getInstance(); if (hudson.isQuietingDown()) return Messages.Queue_HudsonIsAboutToShutDown(); Label label = task.getAssignedLabel(); if (hudson.getNodes().isEmpty()) label = null; // no master/slave. pointless to talk about nodes String name = null; if (label != null) { name = label.getName(); if (label.isOffline()) { if (label.getNodes().size() > 1) return Messages.Queue_AllNodesOffline(name); else return Messages.Queue_NodeOffline(name); } } if (name == null) return Messages.Queue_WaitingForNextAvailableExecutor(); else return Messages.Queue_WaitingForNextAvailableExecutorOn(name); }