Skip to content

Commit 60685db

Browse files
committed
Extend startup notification timeout as jobs continue to be loaded
1 parent da5a4bf commit 60685db

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<changelist>999999-SNAPSHOT</changelist>
2323
<gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
2424
<!-- remember to change the io.jenkins.tools.bom artifact when changing this -->
25-
<jenkins.version>2.277.1</jenkins.version>
25+
<jenkins.version>2.332.1</jenkins.version>
2626
<java.level>8</java.level>
2727
<no-test-jar>false</no-test-jar>
2828
<hpi.compatibleSinceVersion>5.2</hpi.compatibleSinceVersion>
@@ -58,8 +58,8 @@
5858
<dependencies>
5959
<dependency>
6060
<groupId>io.jenkins.tools.bom</groupId>
61-
<artifactId>bom-2.277.x</artifactId>
62-
<version>984.vb5eaac999a7e</version>
61+
<artifactId>bom-2.332.x</artifactId>
62+
<version>1195.v33041c1f1b_b_2</version>
6363
<scope>import</scope>
6464
<type>pom</type>
6565
</dependency>

src/main/java/com/cloudbees/hudson/plugins/folder/AbstractFolder.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ public abstract class AbstractFolder<I extends TopLevelItem> extends AbstractIte
157157
private static long loadingTick;
158158
private static final AtomicInteger jobTotal = new AtomicInteger();
159159
private static final AtomicInteger jobEncountered = new AtomicInteger();
160+
private static final AtomicInteger jobEncounteredAtLastTick = new AtomicInteger();
160161
private static final AtomicBoolean loadJobTotalRan = new AtomicBoolean();
161162
private static final int TICK_INTERVAL = 15000;
162163

@@ -565,8 +566,17 @@ public String call(I item) {
565566
float percentage = 100.0f * jobEncountered.incrementAndGet() / Math.max(1, jobTotal.get());
566567
long now = System.currentTimeMillis();
567568
if (loadingTick == 0) {
569+
// Buy ourselves two tick intervals to complete the first tick + some slop.
570+
Jenkins.get().getLifecycle().onExtendTimeout(2 * TICK_INTERVAL, TimeUnit.MILLISECONDS);
571+
568572
loadingTick = now;
569573
} else if (now - loadingTick > TICK_INTERVAL) {
574+
// If we're still making progress loading jobs, buy ourselves another tick.
575+
if (jobEncountered.get() > jobEncounteredAtLastTick.get()) {
576+
Jenkins.get().getLifecycle().onExtendTimeout(TICK_INTERVAL, TimeUnit.MILLISECONDS);
577+
}
578+
jobEncounteredAtLastTick.set(jobEncountered.get());
579+
570580
LOGGER.log(Level.INFO, String.format("Loading job %s (%.1f%%)", fullName, percentage));
571581
loadingTick = now;
572582
}

0 commit comments

Comments
 (0)