private void updateHistory(RequestControlContext context) {
TransitionDefinition transition = context.getCurrentTransition();
History history = (History) transition.getAttributes().get("history");
if (history == null || history == History.PRESERVE) {
View currentView = context.getCurrentView();
if (currentView != null && shouldRedirect(context)) {
currentView.saveState();
}
context.updateCurrentFlowExecutionSnapshot();
} else if (history == History.DISCARD) {
context.removeCurrentFlowExecutionSnapshot();
} else if (history == History.INVALIDATE) {