|
12 | 12 | import hudson.slaves.NodeProperty; |
13 | 13 | import hudson.slaves.NodePropertyDescriptor; |
14 | 14 | import hudson.util.DescribableList; |
| 15 | +import java.io.Closeable; |
15 | 16 | import java.util.Collections; |
16 | 17 | import java.util.List; |
17 | 18 | import java.util.logging.Level; |
18 | 19 | import java.util.logging.Logger; |
19 | 20 | import jenkins.model.Jenkins; |
| 21 | +import org.jenkinsci.plugins.workflow.steps.BodyExecutionCallback; |
20 | 22 | import org.jenkinsci.plugins.workflow.steps.BodyInvoker; |
21 | 23 | import org.jenkinsci.plugins.workflow.steps.EnvironmentExpander; |
22 | 24 | import org.jenkinsci.plugins.workflow.steps.StepContext; |
@@ -89,4 +91,27 @@ public void stop(@NonNull Throwable cause) throws Exception { |
89 | 91 | LOGGER.log(Level.FINE, "Stopping container step."); |
90 | 92 | closeQuietly(getContext(), decorator); |
91 | 93 | } |
| 94 | + |
| 95 | + /** |
| 96 | + * This class has been replaced but is not deleted to prevent {@code ClassNotFoundException}. |
| 97 | + * See <a href="https://issues.jenkins.io/browse/JENKINS-75720">JENKINS-75720</a> |
| 98 | + * @deprecated replaced {@link Resources#closeQuietlyCallback(Closeable...)} |
| 99 | + */ |
| 100 | + @Deprecated |
| 101 | + @SuppressFBWarnings("SE_BAD_FIELD") |
| 102 | + private static class ContainerExecCallback extends BodyExecutionCallback.TailCall { |
| 103 | + |
| 104 | + private static final long serialVersionUID = 6385838254761750483L; |
| 105 | + |
| 106 | + private final Closeable[] closeables; |
| 107 | + |
| 108 | + private ContainerExecCallback(Closeable... closeables) { |
| 109 | + this.closeables = closeables; |
| 110 | + } |
| 111 | + |
| 112 | + @Override |
| 113 | + public void finished(StepContext context) { |
| 114 | + closeQuietly(context, closeables); |
| 115 | + } |
| 116 | + } |
92 | 117 | } |
0 commit comments