boolean delivered = deliver(this, r);
boolean delivered = super.deliver(r);
   public boolean deliver(Receiver r)   {      boolean delivered = deliver(this, r);      if (delivered)      {         return true;      }      // this peer has not redelivered any message but other peers may have messages to redeliver      if (r instanceof RemoteQueue)      {         // this was a remote forward request, but there are no local messages to forward so return         return false;      }      // no message in the local state, try remotely      boolean peerWillForward = false;      try      {         peerWillForward = peer.requestForward();      }      catch(DistributedException e)      {         log.error("Redelivery request failed", e);         return false;      }      if (!peerWillForward)      {         return false;      }      // at least one peer will forward a message      while(!delivered)      {         // TODO: experimental. Also see QueuePeer.requestForward() and QueueFacade.forward()         try         {            Thread.sleep(200);         }         catch(InterruptedException e)         {            // ignore         }         if (log.isTraceEnabled()) { log.trace("retrying redelivery"); }         delivered = deliver(this, r);      }      return delivered;   }