This is an automated email from the ASF dual-hosted git repository. gpetracek pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/deltaspike.git
commit 8936f921f39d270ecd5cc762d92c0b66f579b61d Author: gpetracek <[email protected]> AuthorDate: Mon Aug 12 21:45:31 2019 +0200 DELTASPIKE-1385 added support for init under high load --- .../deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java | 3 ++- .../config/view/DefaultErrorViewAwareExceptionHandlerWrapper.java | 2 +- .../config/view/navigation/ViewConfigAwareNavigationHandler.java | 5 +++-- .../jsf/impl/listener/phase/DeltaSpikePhaseListener.java | 7 ++++++- .../jsf/impl/navigation/NavigationHandlerAwareApplication.java | 4 ++-- .../deltaspike/jsf/impl/security/SecurityAwareViewHandler.java | 7 ++++++- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java index b0f3175..92c1d89 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/WindowIdHtmlRenderer.java @@ -127,8 +127,9 @@ public class WindowIdHtmlRenderer extends Renderer if (clientWindow == null) { clientWindowConfig = BeanProvider.getContextualReference(ClientWindowConfig.class); - clientWindow = BeanProvider.getContextualReference(ClientWindow.class); maxWindowIdLength = ClientWindowHelper.getMaxWindowIdLength(); + + clientWindow = BeanProvider.getContextualReference(ClientWindow.class); } } } diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultErrorViewAwareExceptionHandlerWrapper.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultErrorViewAwareExceptionHandlerWrapper.java index 33af77f..f6f97fb 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultErrorViewAwareExceptionHandlerWrapper.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultErrorViewAwareExceptionHandlerWrapper.java @@ -43,7 +43,7 @@ public class DefaultErrorViewAwareExceptionHandlerWrapper extends ExceptionHandl { private ExceptionHandler wrapped; - private ViewNavigationHandler viewNavigationHandler; + private volatile ViewNavigationHandler viewNavigationHandler; /** * Constructor used by proxy libs diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/navigation/ViewConfigAwareNavigationHandler.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/navigation/ViewConfigAwareNavigationHandler.java index a3171f8..0bc189f 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/navigation/ViewConfigAwareNavigationHandler.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/navigation/ViewConfigAwareNavigationHandler.java @@ -48,7 +48,7 @@ public class ViewConfigAwareNavigationHandler extends NavigationHandler private final NavigationHandler navigationHandler; - private BeanManager beanManager; + private volatile BeanManager beanManager; private NavigationParameterContext navigationParameterContext; @@ -259,11 +259,12 @@ public class ViewConfigAwareNavigationHandler extends NavigationHandler { if (this.beanManager == null) { - this.beanManager = BeanManagerProvider.getInstance().getBeanManager(); this.navigationParameterContext = BeanProvider.getContextualReference(NavigationParameterContext.class); this.viewConfigResolver = BeanProvider.getContextualReference(ViewConfigResolver.class); + + this.beanManager = BeanManagerProvider.getInstance().getBeanManager(); } } } diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/phase/DeltaSpikePhaseListener.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/phase/DeltaSpikePhaseListener.java index adda43a..7f1c062 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/phase/DeltaSpikePhaseListener.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/phase/DeltaSpikePhaseListener.java @@ -52,7 +52,7 @@ public class DeltaSpikePhaseListener implements PhaseListener, Deactivatable private final PhaseListener jsfRequestLifecyclePhaseListener = new JsfRequestLifecyclePhaseListener(); - private ViewConfigResolver viewConfigResolver; + private volatile ViewConfigResolver viewConfigResolver; public DeltaSpikePhaseListener() { @@ -154,6 +154,11 @@ public class DeltaSpikePhaseListener implements PhaseListener, Deactivatable private synchronized void lazyInit() { + if (this.viewConfigResolver != null) + { + return; + } + this.securityModuleActivated = BeanProvider.getContextualReference(EditableAccessDecisionVoterContext.class, true) != null; diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/NavigationHandlerAwareApplication.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/NavigationHandlerAwareApplication.java index 6393914..b622703 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/NavigationHandlerAwareApplication.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/NavigationHandlerAwareApplication.java @@ -31,7 +31,7 @@ import java.lang.reflect.Constructor; public class NavigationHandlerAwareApplication extends ApplicationWrapper implements Deactivatable { - private static Boolean manualNavigationHandlerWrapperMode; + private static volatile Boolean manualNavigationHandlerWrapperMode; private static Class navigationHandlerWrapperClass; private final Application wrapped; @@ -108,7 +108,7 @@ public class NavigationHandlerAwareApplication extends ApplicationWrapper implem try { Constructor deltaSpikeNavigationHandlerWrapperConstructor = - this.navigationHandlerWrapperClass.getConstructor(ConfigurableNavigationHandler.class); + navigationHandlerWrapperClass.getConstructor(ConfigurableNavigationHandler.class); NavigationHandler navigationHandlerWrapper = (NavigationHandler)deltaSpikeNavigationHandlerWrapperConstructor.newInstance(handler); diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/security/SecurityAwareViewHandler.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/security/SecurityAwareViewHandler.java index 7d5115f..6fb44ee 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/security/SecurityAwareViewHandler.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/security/SecurityAwareViewHandler.java @@ -46,7 +46,7 @@ public class SecurityAwareViewHandler extends ViewHandlerWrapper implements Deac protected final ViewHandler wrapped; private final boolean activated; - private Boolean securityModuleActivated; + private volatile Boolean securityModuleActivated; /** * Constructor for wrapping the given {@link ViewHandler} @@ -184,6 +184,11 @@ public class SecurityAwareViewHandler extends ViewHandlerWrapper implements Deac private synchronized void lazyInit() { + if (this.securityModuleActivated != null) + { + return; + } + this.securityModuleActivated = BeanProvider.getContextualReference(EditableAccessDecisionVoterContext.class, true) != null;
