Skip to content

Commit 3732254

Browse files
authored
Merge pull request #98 from krisstern/patch-1.22-bug
Fix bug introduced in PR #95
2 parents 0878db7 + 32dcfb1 commit 3732254

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/main/java/hudson/plugins/build_timeout/global/GlobalTimeOutConfiguration.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
import hudson.Extension;
44
import hudson.model.AbstractBuild;
55
import hudson.model.BuildListener;
6-
import hudson.model.FreeStyleProject;
76
import hudson.model.Project;
8-
import hudson.plugins.build_timeout.*;
7+
import hudson.plugins.build_timeout.BuildTimeOutOperation;
8+
import hudson.plugins.build_timeout.BuildTimeOutOperationDescriptor;
9+
import hudson.plugins.build_timeout.BuildTimeOutStrategy;
10+
import hudson.plugins.build_timeout.BuildTimeOutStrategyDescriptor;
11+
import hudson.plugins.build_timeout.BuildStepWithTimeout;
912
import hudson.plugins.build_timeout.operations.AbortOperation;
1013
import hudson.tasks.Builder;
1114
import jenkins.model.GlobalConfiguration;
@@ -92,6 +95,18 @@ public Optional<Duration> timeOutFor(AbstractBuild<?, ?> build, BuildListener li
9295
return Optional.empty();
9396
}
9497
return Optional.of(Duration.ofMillis(strategy.getTimeOut(build, listener)));
98+
99+
} catch (ClassCastException e) {
100+
log.log(WARNING, e, () -> String.format("%s cannot allow individual jobs to overwrite timeout due to ClassCastException", build.getExternalizableId()));
101+
if (strategy == null) {
102+
return Optional.empty();
103+
}
104+
try {
105+
return Optional.of(Duration.ofMillis(strategy.getTimeOut(build, listener)));
106+
} catch (InterruptedException | MacroEvaluationException | IOException ex) {
107+
log.log(WARNING, ex, () -> String.format("%s failed to determine time out", build.getExternalizableId()));
108+
return Optional.empty();
109+
}
95110
} catch (InterruptedException | MacroEvaluationException | IOException e) {
96111
log.log(WARNING, e, () -> String.format("%s failed to determine time out", build.getExternalizableId()));
97112
return Optional.empty();

0 commit comments

Comments
 (0)