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/14 18:00:17 UTC

svn commit: r1610451 - /tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/LogStreamAsync.java

Author: andygumbrecht
Date: Mon Jul 14 16:00:16 2014
New Revision: 1610451

URL: http://svn.apache.org/r1610451
Log:
Safe start

Modified:
    tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/LogStreamAsync.java

Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/LogStreamAsync.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/LogStreamAsync.java?rev=1610451&r1=1610450&r2=1610451&view=diff
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/LogStreamAsync.java (original)
+++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/util/LogStreamAsync.java Mon Jul 14 16:00:16 2014
@@ -20,11 +20,13 @@ import java.io.Closeable;
 import java.io.IOException;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 public class LogStreamAsync implements LogStream, Closeable {
 
     private static final LinkedBlockingQueue<Message> log = new LinkedBlockingQueue<Message>();
     private static final Thread t = new Thread(new Consumer(LogStreamAsync.log), "LogStreamAsync.Thread");
+    private static final AtomicBoolean started = new AtomicBoolean(false);
     private final LogStream ls;
 
     private enum level {
@@ -39,7 +41,7 @@ public class LogStreamAsync implements L
     public LogStreamAsync(final LogStream ls) {
         this.ls = ls;
 
-        if (!t.isAlive()) {
+        if (!started.getAndSet(true)) {
             t.setDaemon(true);
             t.start();
         }