@Override public AbstractMessage handleIncomingMessage(AbstractMessage incomingMessage) { this.receivedMessagesAverage.inputValue(1); logger.info("in handleIncomingMessage(" + incomingMessage.toString() + ")"); // adds them to a list to see later which got stuck here incomingMessage.setReceiveTimeMillis(Clock.getMainClock().getTimeInMillis(false)); synchronized (receivedMessages) { this.receivedMessages.add(incomingMessage); } // handles the message AbstractMessage replyMessage = null; try { replyMessage = this.handleMessage(incomingMessage); } catch (InterruptedException e) { logger.debug("interrupted"); e.printStackTrace(); } synchronized (receivedMessages) { this.receivedMessages.remove(incomingMessage); } return replyMessage; }