From 1bae0f30f6526fc66c4be25a354e1f6d8ba8f285 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Sat, 20 Sep 2025 09:28:54 -0400 Subject: [PATCH] [JENKINS-16341] Pick up `BoundObjectTable` fix (#11086) --- bom/pom.xml | 2 +- .../java/jenkins/util/ProgressiveRendering.java | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index 336cb52637..ed5e42866e 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -41,7 +41,7 @@ THE SOFTWARE. 2.0.0-M4 2.4.21 1.1-jenkins-20250731 - 2033.va_95221851a_23 + 2036.v69a_e0454da_b_9 diff --git a/core/src/main/java/jenkins/util/ProgressiveRendering.java b/core/src/main/java/jenkins/util/ProgressiveRendering.java index 9dc2102b5b..3fca29afbf 100644 --- a/core/src/main/java/jenkins/util/ProgressiveRendering.java +++ b/core/src/main/java/jenkins/util/ProgressiveRendering.java @@ -134,7 +134,7 @@ public abstract class ProgressiveRendering { ((ScheduledExecutorService) executorService).schedule(new Runnable() { @Override public void run() { LOG.log(Level.FINE, "some time has elapsed since {0} finished, so releasing", boundId); - release(); + boundObjectTable.release(boundId); } }, timeout() /* add some grace period for browser/network overhead */ * 2, TimeUnit.MILLISECONDS); } @@ -142,17 +142,6 @@ public abstract class ProgressiveRendering { }); } - /** {@link BoundObjectTable#releaseMe} just cannot work the way we need it to. */ - private void release() { - try { - Method release = BoundObjectTable.Table.class.getDeclaredMethod("release", String.class); - release.setAccessible(true); - release.invoke(boundObjectTable, boundId); - } catch (Exception x) { - LOG.log(Level.WARNING, "failed to unbind " + boundId, x); - } - } - /** * Copies important fields from the current HTTP request and makes them available during {@link #compute}. * This is necessary because some model methods such as {@link AbstractItem#getUrl} behave differently when called from a request. @@ -281,7 +270,7 @@ public abstract class ProgressiveRendering { r.put("status", statusJSON); if (statusJSON instanceof String) { // somehow completed LOG.log(Level.FINE, "finished in news so releasing {0}", boundId); - release(); + boundObjectTable.release(boundId); } lastNewsTime = System.currentTimeMillis(); LOG.log(Level.FINER, "news from {0}", uri);