public TimerService getTimerService() throws IllegalStateException {
check(Call.getTimerService);
final ThreadContext threadContext = ThreadContext.getThreadContext();
final BeanContext beanContext = threadContext.getBeanContext();
final EjbTimerService timerService = beanContext.getEjbTimerService();
if (timerService == null) {
throw new IllegalStateException("This ejb does not support timers " + beanContext.getDeploymentID());
}
if (!timerService.isStarted()) {
try {
timerService.start();
} catch (final OpenEJBException e) {
throw new IllegalStateException(e);
}
}
return new TimerServiceImpl(timerService, threadContext.getPrimaryKey(), beanContext.getEjbTimeout());