@ Override public Timer createCalendarTimer ( ScheduleExpression schedule , TimerConfig timerConfig ) { Serializable info = timerConfig == null ? null : timerConfig . getInfo ( ) ; boolean persistent = timerConfig == null || timerConfig . isPersistent ( ) ; boolean isTraceOn = TraceComponent . isAnyTracingEnabled ( ) ; if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . entry ( tc , "createCalendarTimer: " + persistent , this ) ; // Bean must implement TimedObject interface or have a timeout method to create a timer. if ( ! home . beanMetaData . isTimedObject ) { IllegalStateException ise = new IllegalStateException ( "Timer Service: Bean does not implement TimedObject: " + beanId ) ; if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "createCalendarTimer: " + ise ) ; throw ise ; } if ( home . beanMetaData . isEntityBean ( ) ) // d595255 { IllegalStateException ise = new IllegalStateException ( "Timer Service: Entity beans cannot use calendar-based timers: " + beanId ) ; if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "createCalendarTimer: " + ise ) ; throw ise ; } // Determine if this bean is in a state that allows timer service // method access - throws IllegalStateException if not allowed. checkTimerServiceAccess ( ) ; // Make sure the arguments are valid.... if ( schedule == null ) { IllegalArgumentException ise = new IllegalArgumentException ( "TimerService: schedule not a valid value: null" ) ; if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "createCalendarTimer: " + ise ) ; throw ise ; } Timer timer = container . getEJBRuntime ( ) . createTimer ( this , null , - 1 , schedule , info , persistent ) ; // F743-13022 if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "createCalendarTimer: " + timer ) ; return timer ; }
F7437591 . codRev