users@ejb-spec.java.net

[ejb-spec users] [jsr345-experts] Re: EJB_SPEC-71 - Clarify rules on Timer.cancel

From: Linda DeMichiel <linda.demichiel_at_oracle.com>
Date: Wed, 05 Dec 2012 18:40:21 -0800

On 12/4/2012 9:40 AM, Marina Vatkina wrote:
>
>
> Linda DeMichiel wrote:
>>
>>
>> On 12/3/2012 11:03 PM, Marina Vatkina wrote:
>>> Experts,
>>>
>>> Please look at http://java.net/jira/browse/EJB_SPEC-71 - which is a separate issue on Timer.cancel mismatch in the spec.
>>>
>>> Please let me know, if you think that:
>>>
>>> a) A timer can be cancelled only by the bean that owns it (as in getAllTimers() rule)
>>>
>>
>> no
>>
>>> Or
>>>
>>> b1) A timer can be cancelled by calling Timer.cancel() (i.e. the rule in getAllTimers() should be removed)
>>>
>>
>> yes
>>
>>> b2) Timer can be cancelled by a non-EJB caller (i.e. the spec should remove references to a bean or a Bean Provider when
>>> describing the timer cancellation).
>>>
>>
>> yes
>>
>>> Depending on the outcome of your vote, I'll update the spec one way or the other.
>>>
>>
>> The spec should not prohibit this, as that would be a backward-incompatible change.
>>
>> I don't see any reason for encouraging it either, i.e., the language of EJB 3.1 is sufficient.
>
> The spec says "Timer object [...] allows the bean to cancel the timer" or "the Bean Provider to cancel a timer". So the
> spec needs to change to allow b2.
>

I don't think the spec needs to change anything. What is stated is the obvious intended scenario. However the
bean provider can arrange for the timer to be canceled or managed by another object by passing it around.


> thanks,
> -marina
>>
>> -Linda
>>
>>> As a note: GlassFish (RI) allows a non-owning bean (I didn't check a servlet) to cancel a timer by calling its cancel()
>>> method.
>>>
>>>
>>> thanks,
>>> -marina