" whereby messages can be acknowledged before the call to handle() has returned):" + d.getReference().getMessageID());
" whereby messages can be cancelled before the call to handle() has returned):" + d.getReference().getMessageID());
   void cancelAllDeliveries() throws JMSException   {      synchronized (deliveryLock)      {               if (log.isTraceEnabled()) { log.trace(this + " cancels deliveries"); }            for(Iterator i = deliveries.iterator(); i.hasNext(); )         {            Delivery d = (Delivery)i.next();            try            {               boolean cancelled = d.cancel();               if (!cancelled)               {                  throw new JMSException("Failed to cancel delivery (FIXME this is due to a race condition in the code" +                        " whereby messages can be acknowledged before the call to handle() has returned):" + d.getReference().getMessageID());               }                              if (log.isTraceEnabled()) { log.trace(d +  " canceled"); }            }            catch(Throwable t)            {               log.error("Cannot cancel delivery: " + d, t);            }            i.remove();         }      }      promptRedelivery();   }