You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by gp...@apache.org on 2014/03/03 14:47:56 UTC

svn commit: r1573562 - /openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java

Author: gpetracek
Date: Mon Mar  3 13:47:56 2014
New Revision: 1573562

URL: http://svn.apache.org/r1573562
Log:
OWB-937 unified startup detection

Modified:
    openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java

Modified: openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java
URL: http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java?rev=1573562&r1=1573561&r2=1573562&view=diff
==============================================================================
--- openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java (original)
+++ openwebbeans/branches/owb_1.2.x/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java Mon Mar  3 13:47:56 2014
@@ -19,6 +19,7 @@
 package org.apache.webbeans.lifecycle;
 
 import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -42,6 +43,8 @@ import org.apache.webbeans.xml.WebBeansX
 
 public abstract class AbstractLifeCycle implements ContainerLifecycle
 {
+    protected AtomicBoolean started = new AtomicBoolean(false);
+
     //Logger instance
     protected Logger logger;
     
@@ -101,6 +104,16 @@ public abstract class AbstractLifeCycle 
     @Override
     public void startApplication(Object startupObject)
     {
+        bootstrapApplication(startupObject);
+    }
+
+    protected synchronized void bootstrapApplication(Object startupObject)
+    {
+        if (started.get())
+        {
+            return;
+        }
+
         // Initalize Application Context
         logger.info(OWBLogConst.INFO_0005);
         
@@ -134,6 +147,8 @@ public abstract class AbstractLifeCycle 
         {
             logger.log(Level.INFO, OWBLogConst.INFO_0001, Long.toString(System.currentTimeMillis() - begin));
         }
+
+        started.set(true);
     }
 
     @Override
@@ -187,6 +202,7 @@ public abstract class AbstractLifeCycle 
         }
         finally
         {
+            started.set(false);
             // Clear singleton list
             WebBeansFinder.clearInstances(WebBeansUtil.getCurrentClassLoader());
         }