From 039c661cd0b6dc250d881064eeb134bf516f9677 Mon Sep 17 00:00:00 2001 From: Bauke Scholtz Date: Sun, 18 Feb 2024 10:33:34 -0400 Subject: [PATCH] Found and fixed two more occurrences on synchronized(session) https://github.com/eclipse-ee4j/mojarra/issues/5380 --- .../main/java/com/sun/faces/lifecycle/ClientWindowImpl.java | 3 ++- .../java/com/sun/faces/renderkit/ServerSideStateHelper.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/impl/src/main/java/com/sun/faces/lifecycle/ClientWindowImpl.java b/impl/src/main/java/com/sun/faces/lifecycle/ClientWindowImpl.java index 5f1cabd651..b0d3cc3017 100644 --- a/impl/src/main/java/com/sun/faces/lifecycle/ClientWindowImpl.java +++ b/impl/src/main/java/com/sun/faces/lifecycle/ClientWindowImpl.java @@ -16,6 +16,7 @@ package com.sun.faces.lifecycle; +import static com.sun.faces.context.SessionMap.getMutex; import static com.sun.faces.renderkit.RenderKitUtils.PredefinedPostbackParameter.CLIENT_WINDOW_PARAM; import java.util.Map; @@ -55,7 +56,7 @@ public void decode(FacesContext context) { } private String calculateClientWindow(FacesContext context) { - synchronized (context.getExternalContext().getSession(true)) { + synchronized (getMutex(context.getExternalContext().getSession(true))) { final String clientWindowCounterKey = "com.sun.faces.lifecycle.ClientWindowCounterKey"; ExternalContext extContext = context.getExternalContext(); Map sessionAttrs = extContext.getSessionMap(); diff --git a/impl/src/main/java/com/sun/faces/renderkit/ServerSideStateHelper.java b/impl/src/main/java/com/sun/faces/renderkit/ServerSideStateHelper.java index 2dc7a67719..5c96f298aa 100644 --- a/impl/src/main/java/com/sun/faces/renderkit/ServerSideStateHelper.java +++ b/impl/src/main/java/com/sun/faces/renderkit/ServerSideStateHelper.java @@ -263,7 +263,7 @@ public Object getState(FacesContext ctx, String viewId) { } // noinspection SynchronizationOnLocalVariableOrMethodParameter - synchronized (sessionObj) { + synchronized (getMutex(sessionObj)) { Map logicalMap = (Map) externalCtx.getSessionMap().get(LOGICAL_VIEW_MAP); if (logicalMap != null) { Map actualMap = (Map) logicalMap.get(idInLogicalMap);