From 3cb926e01c227dc6a95a270957b3e3902363a2cd Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 13 Nov 2015 20:26:44 +0100 Subject: [PATCH] Task list getters never return null now Issue: SPR-13680 --- .../config/ScheduledTaskRegistrar.java | 28 +++++++++++-------- .../config/ScheduledTaskRegistrarTests.java | 10 +++++++ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java b/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java index 681d975c42f..8f440e0ad43 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java @@ -111,7 +111,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean public void setTriggerTasks(Map triggerTasks) { this.triggerTasks = new ArrayList(); for (Map.Entry task : triggerTasks.entrySet()) { - this.triggerTasks.add(new TriggerTask(task.getKey(), task.getValue())); + addTriggerTask(new TriggerTask(task.getKey(), task.getValue())); } } @@ -127,10 +127,11 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean /** * Get the trigger tasks as an unmodifiable list of {@link TriggerTask} objects. + * @return the list of tasks (never {@code null}) * @since 4.2 */ public List getTriggerTaskList() { - return (this.triggerTasks != null? Collections.unmodifiableList(this.triggerTasks) : null); + return (this.triggerTasks != null? Collections.unmodifiableList(this.triggerTasks) : Collections.emptyList()); } /** @@ -140,7 +141,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean public void setCronTasks(Map cronTasks) { this.cronTasks = new ArrayList(); for (Map.Entry task : cronTasks.entrySet()) { - this.addCronTask(task.getKey(), task.getValue()); + addCronTask(task.getKey(), task.getValue()); } } @@ -156,10 +157,11 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean /** * Get the cron tasks as an unmodifiable list of {@link CronTask} objects. + * @return the list of tasks (never {@code null}) * @since 4.2 */ public List getCronTaskList() { - return (this.cronTasks != null ? Collections.unmodifiableList(this.cronTasks) : null); + return (this.cronTasks != null ? Collections.unmodifiableList(this.cronTasks) : Collections.emptyList()); } /** @@ -169,7 +171,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean public void setFixedRateTasks(Map fixedRateTasks) { this.fixedRateTasks = new ArrayList(); for (Map.Entry task : fixedRateTasks.entrySet()) { - this.addFixedRateTask(task.getKey(), task.getValue()); + addFixedRateTask(task.getKey(), task.getValue()); } } @@ -185,10 +187,11 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean /** * Get the fixed-rate tasks as an unmodifiable list of {@link IntervalTask} objects. + * @return the list of tasks (never {@code null}) * @since 4.2 */ public List getFixedRateTaskList() { - return (this.fixedRateTasks != null ? Collections.unmodifiableList(this.fixedRateTasks) : null); + return (this.fixedRateTasks != null ? Collections.unmodifiableList(this.fixedRateTasks) : Collections.emptyList()); } /** @@ -198,7 +201,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean public void setFixedDelayTasks(Map fixedDelayTasks) { this.fixedDelayTasks = new ArrayList(); for (Map.Entry task : fixedDelayTasks.entrySet()) { - this.addFixedDelayTask(task.getKey(), task.getValue()); + addFixedDelayTask(task.getKey(), task.getValue()); } } @@ -214,10 +217,11 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean /** * Get the fixed-delay tasks as an unmodifiable list of {@link IntervalTask} objects. + * @return the list of tasks (never {@code null}) * @since 4.2 */ public List getFixedDelayTaskList() { - return (this.fixedDelayTasks != null ? Collections.unmodifiableList(this.fixedDelayTasks) : null); + return (this.fixedDelayTasks != null ? Collections.unmodifiableList(this.fixedDelayTasks) : Collections.emptyList()); } /** @@ -225,7 +229,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean * @see TaskScheduler#scheduleAtFixedRate(Runnable, long) */ public void addTriggerTask(Runnable task, Trigger trigger) { - this.addTriggerTask(new TriggerTask(task, trigger)); + addTriggerTask(new TriggerTask(task, trigger)); } /** @@ -244,7 +248,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean * Add a Runnable task to be triggered per the given cron expression */ public void addCronTask(Runnable task, String expression) { - this.addCronTask(new CronTask(task, expression)); + addCronTask(new CronTask(task, expression)); } /** @@ -263,7 +267,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean * @see TaskScheduler#scheduleAtFixedRate(Runnable, long) */ public void addFixedRateTask(Runnable task, long interval) { - this.addFixedRateTask(new IntervalTask(task, interval, 0)); + addFixedRateTask(new IntervalTask(task, interval, 0)); } /** @@ -283,7 +287,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean * @see TaskScheduler#scheduleWithFixedDelay(Runnable, long) */ public void addFixedDelayTask(Runnable task, long delay) { - this.addFixedDelayTask(new IntervalTask(task, delay, 0)); + addFixedDelayTask(new IntervalTask(task, delay, 0)); } /** diff --git a/spring-context/src/test/java/org/springframework/scheduling/config/ScheduledTaskRegistrarTests.java b/spring-context/src/test/java/org/springframework/scheduling/config/ScheduledTaskRegistrarTests.java index 160a6283f6c..711c7e5397f 100644 --- a/spring-context/src/test/java/org/springframework/scheduling/config/ScheduledTaskRegistrarTests.java +++ b/spring-context/src/test/java/org/springframework/scheduling/config/ScheduledTaskRegistrarTests.java @@ -28,12 +28,22 @@ import static org.mockito.Mockito.*; * Unit tests for {@link ScheduledTaskRegistrar}. * * @author Tobias Montagna-Hay + * @author Juergen Hoeller * @since 4.2 */ public class ScheduledTaskRegistrarTests { private final ScheduledTaskRegistrar taskRegistrar = new ScheduledTaskRegistrar(); + + @Test + public void emptyTaskLists() { + assertTrue(this.taskRegistrar.getTriggerTaskList().isEmpty()); + assertTrue(this.taskRegistrar.getCronTaskList().isEmpty()); + assertTrue(this.taskRegistrar.getFixedRateTaskList().isEmpty()); + assertTrue(this.taskRegistrar.getFixedDelayTaskList().isEmpty()); + } + @Test public void getTriggerTasks() { TriggerTask mockTriggerTask = mock(TriggerTask.class);