You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2019/08/12 20:08:23 UTC
[deltaspike] 03/03: DELTASPIKE-1385 added support for init under
high load
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 <gp...@apache.org>
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;