public void broadcast(FacesEvent event) throws AbortProcessingException {
if (TransactionTokenUtil.isDoOnce(getId())) {
final FacesContext context = FacesContext.getCurrentInstance();
if (TransactionTokenUtil.verify(context)) {
super.broadcast(event);
} else {
final Map requestMap = context.getExternalContext()
.getRequestMap();
if (PostbackUtil.isPostback(requestMap)) {
context.renderResponse();
return;
}
String path = RedirectScope.getRedirectingPath(context);
if (path == null) {
path = RedirectScope.getRedirectedPath(context);
}
if (path != null) {
NavigationHandlerUtil.assertNotAlreadyRedirect(context);
NavigationHandlerUtil.redirect(context, path);
}
context.renderResponse();
}
return;
}
super.broadcast(event);
}