diff --git a/core/src/main/java/hudson/model/LoadStatistics.java b/core/src/main/java/hudson/model/LoadStatistics.java index 40185eb04258e9ba78b1033123867825600386a2..934472bd248b93112e554fc36f3c0bc3fbc00f98 100644 --- a/core/src/main/java/hudson/model/LoadStatistics.java +++ b/core/src/main/java/hudson/model/LoadStatistics.java @@ -26,6 +26,8 @@ package hudson.model; import hudson.Extension; import hudson.model.MultiStageTimeSeries.TimeScale; import hudson.model.MultiStageTimeSeries.TrendChart; +import hudson.model.queue.SubTask; +import hudson.model.queue.Tasks; import hudson.util.ColorPalette; import hudson.util.NoOverlapCategoryAxis; import jenkins.model.Jenkins; @@ -232,6 +234,9 @@ public abstract class LoadStatistics { for (Queue.BuildableItem bi : bis) { if(bi.task.getAssignedLabel()==l) q++; + for (SubTask st : Tasks.getSubTasksOf(bi.task)) + if (st != bi.task && st.getAssignedLabel()==l) + q++; } return q; } diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index f1a852d6dcd5b15714bca18ad98f43e45ce8b609..78244636ae3681a594758e4c133fcdce0c52bc3b 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -756,11 +756,19 @@ public class Queue extends ResourceController implements Saveable { public synchronized int countBuildableItemsFor(Label l) { int r = 0; for (BuildableItem bi : buildables.values()) - if(bi.getAssignedLabel()==l) + if(null==l || bi.getAssignedLabel()==l) { r++; + for (SubTask st : bi.task.getSubTasks()) + if (st != bi.task && (null==l || st.getAssignedLabel()==l)) + r++; + } for (BuildableItem bi : pendings.values()) - if(bi.getAssignedLabel()==l) + if(bi.getAssignedLabel()==l) { r++; + for (SubTask st : bi.task.getSubTasks()) + if (st != bi.task && (null==l || st.getAssignedLabel()==l)) + r++; + } return r; } @@ -768,7 +776,7 @@ public class Queue extends ResourceController implements Saveable { * Counts all the {@link BuildableItem}s currently in the queue. */ public synchronized int countBuildableItems() { - return buildables.size()+pendings.size(); + return countBuildableItemsFor(null); } /**