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);