users@jms-spec.java.net

[jms-spec users] [jsr343-experts] Re: Re: QueueBrowser.getEnumeration

From: Nigel Deakin <nigel.deakin_at_oracle.com>
Date: Mon, 09 Jan 2012 18:39:47 +0000

Given that a QueueBrowser already provides a method to return an Enumeration, what would be the benefit in additionally
returning a Iterator (unless we wanted to add support for remove())?

Nigel

On 09/01/2012 16:32, Rüdiger zu Dohna wrote:
> Maybe it should return an Iterator<Message>? ... deliberately not an Iterable! This would make it clear that it's just
> a snapshot and there's no much use to pass it as a collection around.
>
>
> On 2012-01-09, at 15:01, Nigel Deakin wrote:
>
>> John,
>>
>> Simply returning a Set isn't very scalable: a queue might contain thousands (or hundreds of thousands) of messages.
>> That's why the existing API returns an Enumeration.
>>
>> (Also, since a Queue is by definition ordered, returning a Set would be throwing away important semantics)
>>
>> Nigel
>>
>> On 09/01/2012 13:40, John D. Ament wrote:
>>> Hi Nigel,
>>>
>>> No, I would leave the existing method, and add a new one:
>>>
>>> public Set<Message> getMessages() throws JMSRuntimeException { }
>>>
>>> I think Set is most appropriate, since the messages should be unique.
>>>
>>> On Mon, Jan 9, 2012 at 7:06 AM, Nigel Deakin <nigel.deakin_at_oracle.com <mailto:nigel.deakin_at_oracle.com>> wrote:
>>>
>>> John,
>>>
>>>
>>> On 06/01/2012 10:49, John D. Ament wrote:
>>>
>>> It may be a bit late, but is it possible for us to provide a set or list back that is properly typed (e.g.
>>> javax.jms.Message) from QueueBrowser?
>>>
>>>
>>> Can you be more specific about what you are asking for?
>>>
>>> Are you asking for the existing method
>>> Enumeration getEnumeration() throws JMSException;
>>> to be changed to
>>> Enumeration <Message> getEnumeration() throws JMSException;
>>>
>>> or something else?
>>>
>>> Nigel
>>>
>>>
>