Dispatcher.singleton.unregisterTarget(this.sessionID);
JMSDispatcher.instance.unregisterTarget(Integer.valueOf(sessionID));
   public void close() throws JMSException   {      if (closed)      {         throw new IllegalStateException("Session is already closed");      }            if (log.isTraceEnabled()) log.trace("close()");                  // clone to avoid ConcurrentModificationException      HashSet consumerSet = new HashSet(consumers.values());            for(Iterator i = consumerSet.iterator(); i.hasNext(); )      {         ((ServerConsumerEndpoint)i.next()).remove();      }            HashSet producerSet = new HashSet(producers.values());            for(Iterator i = producerSet.iterator(); i.hasNext(); )      {         ((ServerProducerEndpoint)i.next()).close();      }            connectionEndpoint.sessions.remove(this.sessionID);            Dispatcher.singleton.unregisterTarget(this.sessionID);            closed = true;   }