private void checkForReplayedMessage(MethodCallMessage request) throws MessageVerificationFailedException {
String authenticationInfo = request.getPrincipal();
synchronized (lastMessageTimestamp) {
try {
if (lastMessageTimestamp.get(authenticationInfo) >= request.getTimestamp()) {
throw new MessageVerificationFailedException(
"Message's timestamp was too old. Message with higher timestamp already receiverd."
+ "Possible replay detected.");
}
} catch (ExecutionException e) {
LOGGER.error("error when accessing cache", e);