code: public void broadcast(FacesEvent event)
            throws AbortProcessingException {
  
          if (!(event instanceof WrapperEvent)) {
              super.broadcast(event);
              return;
          }
          FacesContext context = FacesContext.getCurrentInstance();
          // Set up the correct context and fire our wrapped event
          WrapperEvent revent = (WrapperEvent) event;
          if (isNestedWithinIterator()) {
              setDataModel(null);
          }
          int oldRowIndex = getRowIndex();
          setRowIndex(revent.getRowIndex());
          FacesEvent rowEvent = revent.getFacesEvent();
          UIComponent source = rowEvent.getComponent();
          UIComponent compositeParent = null;
          try {
              if (!UIComponent.isCompositeComponent(source)) {
                  compositeParent = UIComponent.getCompositeComponentParent(source);
              }
              if (compositeParent != null) {
                  compositeParent.pushComponentToEL(context, null);
              }
              source.pushComponentToEL(context, null);
              source.broadcast(rowEvent);
          } finally {
              source.popComponentFromEL(context);
              if (compositeParent != null) {
                  compositeParent.popComponentFromEL(context);
              }
          }
          setRowIndex(oldRowIndex);
  
      }
docs: <p>Override the default {@link UIComponentBase#broadcast} processing to
  unwrap any wrapped {@link FacesEvent} and reset the current row index,
  before the event is actually broadcast.  For events that we did not wrap
  (in <code>queueEvent()</code>), default processing will occur.</p>
  
  @param event The {@link FacesEvent} to be broadcast
  
  @throws AbortProcessingException Signal the JavaServer Faces
  implementation that no further
  processing on the current event should
  be performed
  @throws IllegalArgumentException if the implementation class of this
  {@link FacesEvent} is not supported by
  this component
  @throws NullPointerException     if <code>event</code> is <code>null</code>