Closed
Description
Scenario:
UniformRandomBackOffPolicy is throwing IllegalArgumentException on calling backOff
when maxBackOffPeriod is less than minBackOffPeriod.
Version Tested:
2.0.9
Junit to Replicate::
maxBackOff < minBackOff
@Test
public void testMaxBackOffLessThanMinBackOff() {
UniformRandomBackOffPolicy backOffPolicy = new UniformRandomBackOffPolicy();
int minBackOff = 1000;
int maxBackOff = 10;
backOffPolicy.setMinBackOffPeriod(minBackOff);
backOffPolicy.setMaxBackOffPeriod(maxBackOff);
UniformRandomBackOffPolicy withSleeper = backOffPolicy.withSleeper(new Sleeper() {
@Override
public void sleep(long backOffPeriod) throws InterruptedException {
// do nothing;
}
});
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> withSleeper.backOff(null));
}
Possible fix:
Following scenarios are addressed when the UniformRandomBackOffPolicy is not configured properly.
- maxBackOff is less than or equal to zero.
- minackOff is less than or equal to zero.
- maxBackOff is equal to minBackOff.
Similarly, when maxBackOff is less than minBackOff could be validated and provide some default value.