@Override public void run() { try { // receivedMessagesAverage logger.info("receivedMessagesAverage: " + receivedMessagesAverage.getAverage()); // print which are unprocessed long currentTime = Clock.getMainClock().getTimeInMillis(false); String debug = ""; synchronized (receivedMessages) { for (AbstractMessage message : receivedMessages) debug += message.toString() + "@" + (message.getReceiveTimeMillis() - currentTime) + ":"; } if (logger.isDebugEnabled()) logger.debug("unprocessed messages: " + debug); } catch (Exception e) { // just so it doesn't die silently if an unhandled exception happened e.printStackTrace(); } }