2 Replies Latest reply on Mar 8, 2010 11:16 PM by Zemian Deng

    FilterMessageHandler resets after scanning queue

    Tim Fox Master

      Looking at the code in FilterMessageHandler.peek, it resets the iterator after each scan:


      if (consumer.getFilter() != null)
                     // we have iterated on the whole queue for
                     // messages which matches the consumer filter.
                     // we reset its iterator in case new messages are added to the queue
                     iterator = messageReferences.iterator();


      This means effectively the whole queue is rescanned when a new message is added to a queue which has non matching messages.


      I thought the whole reason of adding these handlers was to avoid rescanning?