log.debug("<<< {}", message.toString().trim());
}
for (Map.Entry<MessageListener, MessageFilter> entry : messageListeners.entrySet()) {
final MessageListener listener = entry.getKey();
final MessageFilter filter = entry.getValue();
if (filter.check(message)) {
executor.execute(new Runnable() {
@Override
public void run() {
try {
listener.onMessage(message);