String producerID = new GUID().toString();
int producerID = connectionEndpoint.serverPeer.getNextObjectID();
   public ProducerDelegate createProducerDelegate(Destination jmsDestination) throws JMSException   {      if (closed)      {         throw new IllegalStateException("Session is closed");      }                  if (jmsDestination != null)      {         if (dm.getCoreDestination(jmsDestination) == null)         {            throw new InvalidDestinationException("No such destination: " + jmsDestination);         }      }           String producerID = new GUID().toString();            // create the corresponding server-side producer endpoint and register it with this      // session endpoint instance      ServerProducerEndpoint ep = new ServerProducerEndpoint(producerID, jmsDestination, this);            putProducerDelegate(producerID, ep);      ProducerAdvised producerAdvised = new ProducerAdvised(ep);      Dispatcher.singleton.registerTarget(producerID, producerAdvised);               ClientProducerDelegate d = new ClientProducerDelegate(producerID);            log.debug("created and registered " + ep);      return d;   }