/** * This method first calls stop on its superclass <code>Destination</code> and then removes any * assemblers from the ServletContext or Session that are ready for removal. If an assembler is * only used by a single destination (attribute-id==destination-id) then it is removed. If an * assembler is shared across destinations, (attribute-id<>destination-id) then it is only * removed if its reference count (maintained in <code>MessageBroker</code>) is down to zero */ public void stop() { if (isStarted()) { super.stop(); // destroy factory instance to free up resources if (factory != null && (factory instanceof DestructibleFlexFactory)) ((DestructibleFlexFactory) factory).destroyFactoryInstance(factoryInstance); } else { super.stop(); } }