/** * Closes the message queue * * @param queue * - the message queue to close */ @Override public void closeQueue(final MessageQueue queue) { messageQueues.values().remove(queue); sessionLookup.values().remove(queue.getSession()); for (Iterator<RemoteMessageCallback> iterator = remoteSubscriptions.values().iterator(); iterator.hasNext(); ) { final RemoteMessageCallback cb = iterator.next(); cb.removeQueue(queue); if (cb.getQueueCount() == 0) { iterator.remove(); } } fireQueueCloseListeners(new QueueCloseEvent(queue)); }
private void fireQueueCloseListeners(final QueueCloseEvent event) { if (isMonitor()) { busMonitor.notifyQueueDetached(event.getQueue().getSession().getSessionId(), event.getQueue()); } synchronized (queueClosedListeners) { event.setDisposeListener(false); for (Iterator<QueueClosedListener> iter = queueClosedListeners.iterator(); iter.hasNext(); ) { iter.next().onQueueClosed(event); if (event.isDisposeListener()) { iter.remove(); event.setDisposeListener(false); } } } }
private void fireQueueCloseListeners(final QueueCloseEvent event) { if (isMonitor()) { busMonitor.notifyQueueDetached(event.getQueue().getSession().getSessionId(), event.getQueue()); } synchronized (queueClosedListeners) { event.setDisposeListener(false); for (Iterator<QueueClosedListener> iter = queueClosedListeners.iterator(); iter.hasNext(); ) { iter.next().onQueueClosed(event); if (event.isDisposeListener()) { iter.remove(); event.setDisposeListener(false); } } } }
/** * Closes the message queue * * @param queue * - the message queue to close */ @Override public void closeQueue(final MessageQueue queue) { messageQueues.values().remove(queue); sessionLookup.values().remove(queue.getSession()); for (Iterator<RemoteMessageCallback> iterator = remoteSubscriptions.values().iterator(); iterator.hasNext(); ) { final RemoteMessageCallback cb = iterator.next(); cb.removeQueue(queue); if (cb.getQueueCount() == 0) { iterator.remove(); } } fireQueueCloseListeners(new QueueCloseEvent(queue)); }