if (!disconnected)
catch(Throwable t)
   void remove() throws JMSException   {      if (log.isTraceEnabled()) log.trace("attempting to remove receiver " + this + " from destination " + channel);       try      {         acquireLock();                           for(Iterator i = deliveries.iterator(); i.hasNext(); )         {            SingleReceiverDelivery d = (SingleReceiverDelivery)i.next();            try            {               d.cancel();            }            catch(Throwable t)            {               throw new JBossJMSException("Failed to cancel delivery", t);            }            i.remove();         }                  if (!disconnected)         {            close();         }                  this.sessionEndpoint.connectionEndpoint.consumers.remove(id);            if (this.channel instanceof Subscription)         {            ((Subscription)channel).closeConsumer(this.sessionEndpoint.serverPeer.getPersistenceManager());         }                  this.sessionEndpoint.consumers.remove(this.id);      }      finally      {         releaseLock();      }   }  