From 4a8fe81e00bd833b1a2605b944c36518d1b96cf7 Mon Sep 17 00:00:00 2001 From: Will Ezell Date: Thu, 10 Oct 2024 12:11:35 -0400 Subject: [PATCH] fix(perf) don't create session if it is not requrired ref: #30321 --- .../business/web/CurrentVariantWebInterceptor.java | 4 ++-- .../dotcms/variant/business/web/VariantWebAPIImpl.java | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/dotCMS/src/main/java/com/dotcms/variant/business/web/CurrentVariantWebInterceptor.java b/dotCMS/src/main/java/com/dotcms/variant/business/web/CurrentVariantWebInterceptor.java index a763e6360f01..6e9b71276637 100644 --- a/dotCMS/src/main/java/com/dotcms/variant/business/web/CurrentVariantWebInterceptor.java +++ b/dotCMS/src/main/java/com/dotcms/variant/business/web/CurrentVariantWebInterceptor.java @@ -56,7 +56,7 @@ public Result intercept(final HttpServletRequest request, final HttpServletRespo } if (!UtilMethods.isSet(currentVariantName)) { - final HttpSession session = request.getSession(); + final HttpSession session = request.getSession(false); if (session != null) { final Object attribute = session.getAttribute(VariantAPI.VARIANT_KEY); @@ -98,4 +98,4 @@ private static Optional getVariantValueFromReferer(final String refererV return Optional.empty(); } -} \ No newline at end of file +} diff --git a/dotCMS/src/main/java/com/dotcms/variant/business/web/VariantWebAPIImpl.java b/dotCMS/src/main/java/com/dotcms/variant/business/web/VariantWebAPIImpl.java index d1c2b146e4ce..bf386e9e9831 100644 --- a/dotCMS/src/main/java/com/dotcms/variant/business/web/VariantWebAPIImpl.java +++ b/dotCMS/src/main/java/com/dotcms/variant/business/web/VariantWebAPIImpl.java @@ -66,19 +66,21 @@ public String currentVariantId() { } } - setSessionAttribute(request, currentVariantName); + setSessionAttributeIfNeeded(request, currentVariantName); return currentVariantName; } - private static void setSessionAttribute(final HttpServletRequest request, + private static void setSessionAttributeIfNeeded(final HttpServletRequest request, final String currentVariantName) { - final HttpSession session = request.getSession(true); + boolean buildSessionIfNeeded = !"DEFAULT".equals(currentVariantName); + + final HttpSession session = request.getSession(buildSessionIfNeeded); if (!UtilMethods.isSet(session)) { return; } - + final Object attribute = session.getAttribute(VariantAPI.VARIANT_KEY); if (mustOverwrite(attribute, currentVariantName)) {