@SuppressWarnings("unchecked") protected void notifyReply(SimpleNode r,AbstractMRListener dest){
  Vector<AbstractMRListener> v;
synchronized (this) {
    v=(Vector<AbstractMRListener>)cmdListeners.clone();
  }
  int cnt=v.size();
  for (int i=0; i < cnt; i++) {
    AbstractMRListener client=v.elementAt(i);
    if (log.isDebugEnabled()) {
      log.debug("notify client: " + client);
    }
    try {
      if (dest != client) {
        forwardReply(client,r);
      }
    }
 catch (    Exception ex) {
      log.warn("notify: During reply dispatch to " + client + "\nException "+ ex);
      ex.printStackTrace();
    }
    if (dest != null) {
      forwardReply(dest,r);
    }
  }
}

@ SuppressWarnings ( "unchecked" ) protected void notifyReply ( SimpleNode r , AbstractMRListener dest ) { Vector < AbstractMRListener > v ; synchronized ( this ) { v = ( Vector < AbstractMRListener > ) cmdListeners . clone ( ) ; } int cnt = v . size ( ) ; for ( int i = 0 ; i < cnt ; i ++ ) { AbstractMRListener client = v . elementAt ( i ) ; if ( log . isDebugEnabled ( ) ) { log . debug ( "notify client: " + client ) ; } try { if ( dest != client ) { forwardReply ( client , r ) ; } } catch ( Exception ex ) { log . warn ( "notify: During reply dispatch to " + client + "\nException " + ex ) ; ex . printStackTrace ( ) ; } if ( dest != null ) { forwardReply ( dest , r ) ; } } }
forward a " reply " from layout to registered listeners .
