Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Incomplete
-
5.2.0
-
None
Description
TopicSubscription class misbehaves when dispatching matched messages after the first message has been discarded. The problem is that difference between dispatch and dequeue counters is used to determine if the dispatch queue is full, but discarding messages also increments dequeue counter, breaking the dispatching logic. Effectively every other message is dispatched anyway to the consumer side.
The mismatch in counting can also be observed in jconsole; the topic dispatched queue size starts ticking down for every discarded message.
A quick test shows that not incrementing dequeue counter in discard method fixes this problem, but I don't know if it has any other side effects.