private void removeTopicListener(String topic, Object inner) { synchronized (messageDispatcher) { MessageDispatcher dispatcher = messageDispatcher.get(topic); if (dispatcher != null) { dispatcher.removeListener(inner); if (!dispatcher.isListened()) { messageDispatcher.remove(topic); try { dispatcher.getConsumer().close(); } catch (ConnectorException e) { } } } } }