Index: core/src/main/java/org/icefaces/impl/event/FormSubmit.java =================================================================== --- core/src/main/java/org/icefaces/impl/event/FormSubmit.java (revision 23745) +++ core/src/main/java/org/icefaces/impl/event/FormSubmit.java (revision ) @@ -31,6 +31,7 @@ import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter; import javax.faces.event.AbortProcessingException; +import javax.faces.event.PhaseId; import javax.faces.event.PostAddToViewEvent; import javax.faces.event.SystemEvent; import javax.faces.event.SystemEventListener; @@ -39,6 +40,7 @@ public class FormSubmit implements SystemEventListener { public static final String DISABLE_CAPTURE_SUBMIT = "DISABLE_CAPTURE_SUBMIT"; private static final String CAPTURE_SUBMIT_SUFFIX = "_captureSubmit"; + private static final String ADDED_CAPTURESUBMIT = "org.icefaces.events."+CAPTURE_SUBMIT_SUFFIX; private boolean deltaSubmit; private boolean partialStateSaving; @@ -50,13 +52,14 @@ public void processEvent(SystemEvent event) throws AbortProcessingException { FacesContext context = FacesContext.getCurrentInstance(); - if (!EnvUtils.isICEfacesView(context)) { + if (!EnvUtils.isICEfacesView(context) || context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) { return; } //using PostAddToViewEvent ensures that the component resource is added to the view only once final HtmlForm form = (HtmlForm) ((PostAddToViewEvent) event).getComponent(); - if (form.getAttributes().get(DISABLE_CAPTURE_SUBMIT) != null) { + if (form.getAttributes().get(DISABLE_CAPTURE_SUBMIT) != null || + form.getAttributes().containsKey(ADDED_CAPTURESUBMIT)) { return; } String componentId = form.getId() + CAPTURE_SUBMIT_SUFFIX; @@ -98,6 +101,7 @@ AjaxDisabledWriter disabledWriter = new AjaxDisabledWriter(); disabledWriter.setTransient(true); //add to end of list + form.getAttributes().put(ADDED_CAPTURESUBMIT, true); form.getChildren().add(disabledWriter); } Index: core/src/main/java/org/icefaces/impl/event/WindowAndViewIDSetup.java =================================================================== --- core/src/main/java/org/icefaces/impl/event/WindowAndViewIDSetup.java (revision 23745) +++ core/src/main/java/org/icefaces/impl/event/WindowAndViewIDSetup.java (revision ) @@ -40,6 +40,7 @@ public class WindowAndViewIDSetup implements SystemEventListener { private static final Logger Log = Logger.getLogger(WindowAndViewIDSetup.class.getName()); private static final String ID_SUFFIX = "_windowviewid"; + private static final String ADDED_WINDOWANDVIEWID = "org.icefaces.events."+ID_SUFFIX; private boolean partialStateSaving; public WindowAndViewIDSetup() { @@ -56,6 +57,10 @@ HtmlForm form = (HtmlForm) ((PostAddToViewEvent) event).getComponent(); String componentId = form.getId() + ID_SUFFIX; + if (form.getAttributes().containsKey(ADDED_WINDOWANDVIEWID)) { + return; + } + if (!partialStateSaving) { for (UIComponent child : form.getChildren()) { String id = child.getId(); @@ -95,6 +100,7 @@ output.setTransient(true); output.setId(componentId); + form.getAttributes().put(ADDED_WINDOWANDVIEWID, true); form.getChildren().add(0, output); }