activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rainer Klute (JIRA)" <>
Subject [jira] Updated: (AMQ-1095) Invalid messages selected from durable topic
Date Wed, 15 Aug 2007 10:19:23 GMT


Rainer Klute updated AMQ-1095:

    Attachment: activemq-patch-AMQ-1095.jar

Okay, folks, here's a hack to solve this issue. With this patch the KahaTopicMessageStore.addMessage(ConnectionContext,
Message) method refuses to add a message to those subscription containers where the message
does not match the respective subscription selector.

Unfortunately the method does not have much it can build on except for the message itself
and the subcription info. Therefore I had to re-implement the selector matching stuff from
AbstractSubscription. Another option would have been to pass on some necessary information
to the store, but I didn't want to fiddle around with any ActiveMQ architecture issues.

Probably the ActiveMQ architects can find a better and more elegant solution to this problem.
Well, at least my JUnit test run now, and my project will hopefully do so, too.

(As an aside, I observed that the hash-index-topic-data_topic___TheNameOfMyTopic file in the
Kaha directory grows without paying attention to the maximum file limit. What will happen
here in the end?)

> Invalid messages selected from durable topic
> --------------------------------------------
>                 Key: AMQ-1095
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Selector
>    Affects Versions: 5.0.0
>            Reporter: Albert Strasheim
>            Assignee: Rob Davies
>         Attachments: activemq-patch-AMQ-1095.jar, ActiveMQ_Testcases.jar,
> We think we've found an issue with durable topic subscriptions and message selectors.
> The attached application sends messages with an int property i with values 0..19 to a
topic. We also have a durable subscription to the topic, selecting messages for which i%2=0.
After sending the messages, the connection is started, allowing the consumer to receive the
messages we've published that match the selection criterion. The second and every subsequent
time we run the application, we see the following:
> message.i = 19
> message.i = 0
> message.i = 2
> message.i = 4
> message.i = 6
> message.i = 8
> message.i = 10
> message.i = 12
> message.i = 14
> message.i = 16
> message.i = 18
> message.i = 19 does not match the message selector criterion but it reaches our message
handler anyway.
> Tested with ActiveMQ from trunk, revision 486090.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message