You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2014/07/18 15:59:55 UTC

svn commit: r1611656 - /tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java

Author: andygumbrecht
Date: Fri Jul 18 13:59:54 2014
New Revision: 1611656

URL: http://svn.apache.org/r1611656
Log:
Atomic variables.

Modified:
    tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java

Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java?rev=1611656&r1=1611655&r2=1611656&view=diff
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java (original)
+++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/test/java/org/apache/openejb/core/singleton/AsyncPostContructTest.java Fri Jul 18 13:59:54 2014
@@ -34,6 +34,8 @@ import javax.ejb.SessionContext;
 import javax.ejb.Singleton;
 import javax.ejb.Startup;
 import java.util.concurrent.Future;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.atomic.AtomicReference;
 
 import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
@@ -71,27 +73,27 @@ public class AsyncPostContructTest {
         private SessionContext sc;
 
         private Future<Boolean> future;
-        private long startEnd;
-        private long asyncStart;
-        private Object startInstance;
-        private Object asyncInstance;
+        private final AtomicLong startEnd = new AtomicLong();
+        private final AtomicLong asyncStart = new AtomicLong();
+        private final AtomicReference<Object> startInstance = new AtomicReference<Object>();
+        private final AtomicReference<Object> asyncInstance = new AtomicReference<Object>();
 
         @PostConstruct
         public void start() {
-            startInstance = this;
+            startInstance.set(this);
             future = sc.getBusinessObject(BuildMeAsync.class).async();
             try {
                 Thread.sleep(100);
             } catch (final InterruptedException e) {
                 // no-op
             }
-            startEnd = System.nanoTime();
+            startEnd.set(System.nanoTime());
         }
 
         @Asynchronous
         public Future<Boolean> async() {
-            asyncStart = System.nanoTime();
-            asyncInstance = this;
+            asyncStart.set(System.nanoTime());
+            asyncInstance.set(this);
             return new AsyncResult<Boolean>(true);
         }
 
@@ -104,19 +106,19 @@ public class AsyncPostContructTest {
         }
 
         public long getStartEnd() {
-            return startEnd;
+            return startEnd.get();
         }
 
         public long getAsyncStart() {
-            return asyncStart;
+            return asyncStart.get();
         }
 
         public Object getStartInstance() {
-            return startInstance;
+            return startInstance.get();
         }
 
         public Object getAsyncInstance() {
-            return asyncInstance;
+            return asyncInstance.get();
         }
     }
 }