From 6fb231aff3a36288c4851bc69fda561e58bbb909 Mon Sep 17 00:00:00 2001 From: Bauke Scholtz Date: Sat, 15 Jun 2024 10:44:20 -0400 Subject: [PATCH] Improve timing of firing PreRemoveFromViewEvent wrt children https://github.com/eclipse-ee4j/mojarra/issues/5445 --- .../main/java/jakarta/faces/component/UIComponentBase.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/impl/src/main/java/jakarta/faces/component/UIComponentBase.java b/impl/src/main/java/jakarta/faces/component/UIComponentBase.java index f40d8d8116..69a1ed7835 100644 --- a/impl/src/main/java/jakarta/faces/component/UIComponentBase.java +++ b/impl/src/main/java/jakarta/faces/component/UIComponentBase.java @@ -1830,9 +1830,8 @@ private static void publishAfterViewEvents(FacesContext context, Application app private static void disconnectFromView(FacesContext context, Application application, UIComponent component) { - application.publishEvent(context, PreRemoveFromViewEvent.class, component); component.setInView(false); - component.compositeParent = null; + if (component.getChildCount() > 0) { List children = component.getChildren(); for (UIComponent c : children) { @@ -1846,6 +1845,8 @@ private static void disconnectFromView(FacesContext context, Application applica } } + application.publishEvent(context, PreRemoveFromViewEvent.class, component); + component.compositeParent = null; } // --------------------------------------------------------- Private Classes