From 5a2a2b3427fd98caa58d30f14147ee2b6c4d2837 Mon Sep 17 00:00:00 2001 From: Christoph Kutzinski Date: Sun, 8 Jan 2012 13:16:37 +0100 Subject: [PATCH] Fixed FindBugs reported bug in initialDelay calculation - actually this would probably only go wrong once in 10000 years or so, but better be safe ;) --- core/src/main/java/hudson/model/AperiodicWork.java | 6 +++++- core/src/main/java/hudson/model/PeriodicWork.java | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/model/AperiodicWork.java b/core/src/main/java/hudson/model/AperiodicWork.java index bccb84b8ea..b46ac8fc0e 100644 --- a/core/src/main/java/hudson/model/AperiodicWork.java +++ b/core/src/main/java/hudson/model/AperiodicWork.java @@ -74,7 +74,11 @@ public abstract class AperiodicWork extends SafeTimerTask implements ExtensionPo * By default it chooses the value randomly between 0 and {@link #getRecurrencePeriod()} */ public long getInitialDelay() { - return Math.abs(RANDOM.nextLong())%getRecurrencePeriod(); + long l = RANDOM.nextLong(); + // Math.abs(Long.MIN_VALUE)==Long.MIN_VALUE! + if (l==Long.MIN_VALUE) + l++; + return Math.abs(l)%getRecurrencePeriod(); } @Override diff --git a/core/src/main/java/hudson/model/PeriodicWork.java b/core/src/main/java/hudson/model/PeriodicWork.java index 6faec3840b..9bb02abd3a 100644 --- a/core/src/main/java/hudson/model/PeriodicWork.java +++ b/core/src/main/java/hudson/model/PeriodicWork.java @@ -75,7 +75,11 @@ public abstract class PeriodicWork extends SafeTimerTask implements ExtensionPoi * By default it chooses the value randomly between 0 and {@link #getRecurrencePeriod()} */ public long getInitialDelay() { - return Math.abs(RANDOM.nextLong())%getRecurrencePeriod(); + long l = RANDOM.nextLong(); + // Math.abs(Long.MIN_VALUE)==Long.MIN_VALUE! + if (l==Long.MIN_VALUE) + l++; + return Math.abs(l)%getRecurrencePeriod(); } /** -- GitLab