Github user michaelandrepearce commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/2488#discussion_r245008661
  
    --- Diff: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
 ---
    @@ -3080,45 +3053,20 @@ private boolean deliverDirect(final 
MessageReference ref) {
                 return true;
              }
     
    -         int startPos = pos;
    -
    -         int size = consumerList.size();
    +         consumers.reset();
     
    -         while (true) {
    -            ConsumerHolder<? extends Consumer> holder;
    -            if (redistributor == null) {
    -               holder = consumerList.get(pos);
    -            } else {
    -               holder = redistributor;
    -            }
    +         while (consumers.hasNext() || redistributor != null) {
    --- End diff --
    
    Trying to keep to standard interfaces, this is the standard Iterator 
methods. Also at this point in the while we do not want to actually get the 
next, theres some timeouts and other checks needed to be done first, thus next 
is called a little later on.


---

Reply via email to