@Override
    public void broadcast(FacesEvent event)
          throws AbortProcessingException {

        if (!(event instanceof WrapperEvent)) {
            super.broadcast(event);
            return;
        }
        FacesContext context = event.getFacesContext();
        // 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);

    }
<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>
primefaces/src/main/java/org/primefaces/component/patch/UIDataPatch.java