private Message collectMessageFromR(int r) {
		while (true) {
			if (isSuspect(r)) {
				// r is been suspected, no need to block any further
				return null;
			}
			// try to receive the message
			synchronized (valMessages) {
				if(valMessages.containsKey(r)){
					return valMessages.get(r);
				}
			}

			try {
				Thread.sleep(100L);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}