@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;
    }
@ 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 ) ; 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 ( ) ) { 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 ; } checkTimerServiceAccess ( ) ; 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 ) ; if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "createCalendarTimer: " + timer ) ; return timer ; }
F7437591.codRev