-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
trunk
-
None
Calling getTimerService() is no longer allowed from the lifecycle methods of @Service.
Exception java.lang.IllegalStateException: getTimerService() not allowed during injection (EJB3 4.5.2).
This occurs in the start() method of a @Service bean. The effect is to disallow setup of application-wide timers.
This action is erroneously disallowed based on Table 2 in the EJB3 specification, section 4.5.2 (IMHO).
Service lifecycle methods are not dependency injection methods, furthermore @Service beans are outside of the EJB3 specification.
Lifecycle methods of a service should probably be considered business methods, not DI in the context of Table 2. They are in the @Management business interface.
There is no workaround yet for this backwards incompatible change which breaks apps that set up application-wide timers from Services when they are migrated to 5.0.0.GA. This used to work in 4.2.x.