@Override public void run() { LOGGER.info("Started MQTT subscription processing thread."); while (true) { try { Future<Message> future = connection.receive(); Message message = future.await(); message.ack(); EventProcessingLogic.processRawPayload( MqttInboundEventReceiver.this, message.getPayload(), null); } catch (InterruptedException e) { break; } catch (Throwable e) { LOGGER.error(e); } } }