connectionEndpoint.sessions.remove(new Integer(sessionID));
connectionEndpoint.removeSessionDelegate(sessionID);
   public void close() throws JMSException   {      if (closed)      {         throw new IllegalStateException("Session is already closed");      }            if (trace) 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(new Integer(sessionID));            JMSDispatcher.instance.unregisterTarget(new Integer(sessionID));            closed = true;   }