/** * Return a messenger suitable for sending to this peer. * * @return a messenger to this PVE peer or if <code>null</code> if peer is unreachable. */ private Messenger getCachedMessenger() { boolean updateAlive = false; synchronized (this) { if ((null == cachedMessenger) || cachedMessenger.isClosed()) { cachedMessenger = null; if (LOG.isEnabledFor(Level.DEBUG)) { LOG.debug("Getting cached Messenger for " + radv.getName()); } updateAlive = true; cachedMessenger = endpoint.getMessenger(getDestAddress(), radv.getRouteAdv()); } } if (updateAlive) { setAlive(null != cachedMessenger); } return cachedMessenger; }