Make sure we don't return expired or canceled timers
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java b/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
index effee7c..f676121 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
@@ -583,9 +583,11 @@
final Collection<Timer> timers = new ArrayList<>();
for (final TimerData timerData : timerStore.getTimers((String) deployment.getDeploymentID())) {
- // if (!CalendarTimerData.class.isInstance(timerData) || !CalendarTimerData.class.cast(timerData).isAutoCreated()) {
- timers.add(timerData.getTimer());
- // }
+ // Returns all active timers associated with this bean.
+ if (timerData.isCancelled() || timerData.isExpired() || timerData.isStopped()) {
+ continue;
+ }
+ timers.add(timerData.getTimer());
}
return timers;
}