Skip to content

UniformRandomBackOffPolicy is throwing IllegalArgumentException on calling backOff when maxBackOffPeriod is less than minBackOffPeriod. #464

Closed
@LokeshAlamuri

Description

@LokeshAlamuri

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.

  1. maxBackOff is less than or equal to zero.
  2. minackOff is less than or equal to zero.
  3. maxBackOff is equal to minBackOff.

Similarly, when maxBackOff is less than minBackOff could be validated and provide some default value.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions