コード例 #1
0
  public void messageReceived(ClusterMessage message) {

    if (log.isDebugEnabled() && message != null)
      log.debug(
          "Assuming clocks are synched: Replication for "
              + message.getUniqueId()
              + " took="
              + (System.currentTimeMillis() - (message).getTimestamp())
              + " ms.");

    // invoke all the listeners
    boolean accepted = false;
    if (message != null) {
      for (Iterator<ClusterListener> iter = clusterListeners.iterator(); iter.hasNext(); ) {
        ClusterListener listener = iter.next();
        if (listener.accept(message)) {
          accepted = true;
          listener.messageReceived(message);
        }
      }
      if (!accepted && notifyLifecycleListenerOnFailure) {
        Member dest = message.getAddress();
        // Notify our interested LifecycleListeners
        fireLifecycleEvent(RECEIVE_MESSAGE_FAILURE_EVENT, new SendMessageData(message, dest, null));
        if (log.isDebugEnabled()) {
          log.debug(
              "Message "
                  + message.toString()
                  + " from type "
                  + message.getClass().getName()
                  + " transfered but no listener registered");
        }
      }
    }
    return;
  }