try {
while (!engineExecutor.isShutdown()) {
Message<?> message = queue.take();
String type = message.getType();
if (listeners.containsKey(type)) {
messageExecutor.execute(new MessageConsumer(message, listeners.get(type)));
}
responseManager.notifyResponse(message);
}
} catch (InterruptedException e) {
if (!shuttingDown.get()) {