DELTASPIKE-1385 added support for init under high load
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 @@
                 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 @@
 {
     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 @@
 
     private final NavigationHandler navigationHandler;
 
-    private BeanManager beanManager;
+    private volatile BeanManager beanManager;
 
     private NavigationParameterContext navigationParameterContext;
 
@@ -259,11 +259,12 @@
     {
         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 @@
 
     private final PhaseListener jsfRequestLifecyclePhaseListener = new JsfRequestLifecyclePhaseListener();
 
-    private ViewConfigResolver viewConfigResolver;
+    private volatile ViewConfigResolver viewConfigResolver;
 
     public DeltaSpikePhaseListener()
     {
@@ -154,6 +154,11 @@
 
     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 @@
 
 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 @@
             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 @@
     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 @@
 
     private synchronized void lazyInit()
     {
+        if (this.securityModuleActivated != null)
+        {
+            return;
+        }
+
         this.securityModuleActivated =
             BeanProvider.getContextualReference(EditableAccessDecisionVoterContext.class, true) != null;