From ece072b23ebae585f95f88f85f49a53f8d6d576b Mon Sep 17 00:00:00 2001 From: Bauke Scholtz Date: Sat, 14 Jan 2023 08:38:19 -0400 Subject: [PATCH] Fix #729: explicit destroyViewScopeMap call in Hacks is not anymore necessary since MyFaces 4.x --- src/main/java/org/omnifaces/util/Hacks.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/omnifaces/util/Hacks.java b/src/main/java/org/omnifaces/util/Hacks.java index dbb6af439..550903ae1 100644 --- a/src/main/java/org/omnifaces/util/Hacks.java +++ b/src/main/java/org/omnifaces/util/Hacks.java @@ -315,7 +315,11 @@ public static void removeViewState(FacesContext context, ResponseStateManager ma if (count < 1) { viewScopeIdCounts.remove(viewScopeId); - invokeMethod(getApplicationAttribute(context, MYFACES_VIEW_SCOPE_PROVIDER), "destroyViewScopeMap", context, viewScopeId); + Object viewScopeProvider = getApplicationAttribute(context, MYFACES_VIEW_SCOPE_PROVIDER); + + if (viewScopeProvider != null) { // This was removed in MyFaces 4.x and leveraged to CDI, see #729. + invokeMethod(viewScopeProvider, "destroyViewScopeMap", context, viewScopeId); + } } else { viewScopeIdCounts.put(viewScopeId, count);