Author: mattsicker
Date: Sun Jun 22 18:00:34 2014
New Revision: 1604625

URL: http://svn.apache.org/r1604625
Log:
Use AtomicBoolean instead of synchronization.

Modified:
    
logging/log4j/log4j2/trunk/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/couchdb/CouchDBConnection.java

Modified: 
logging/log4j/log4j2/trunk/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/couchdb/CouchDBConnection.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/couchdb/CouchDBConnection.java?rev=1604625&r1=1604624&r2=1604625&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/couchdb/CouchDBConnection.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-nosql/src/main/java/org/apache/logging/log4j/nosql/appender/couchdb/CouchDBConnection.java
 Sun Jun 22 18:00:34 2014
@@ -17,6 +17,7 @@
 package org.apache.logging.log4j.nosql.appender.couchdb;
 
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.logging.log4j.core.appender.AppenderLoggingException;
 import org.apache.logging.log4j.nosql.appender.NoSQLConnection;
@@ -29,7 +30,7 @@ import org.lightcouch.Response;
  */
 public final class CouchDBConnection implements NoSQLConnection<Map<String, 
Object>, CouchDBObject> {
     private final CouchDbClient client;
-    private boolean closed = false;
+    private final AtomicBoolean closed = new AtomicBoolean(false);
 
     public CouchDBConnection(final CouchDbClient client) {
         this.client = client;
@@ -60,13 +61,14 @@ public final class CouchDBConnection imp
     }
 
     @Override
-    public synchronized void close() {
-        this.closed = true;
-        this.client.shutdown();
+    public void close() {
+        if (this.closed.compareAndSet(false, true)) {
+            this.client.shutdown();
+        }
     }
 
     @Override
-    public synchronized boolean isClosed() {
-        return this.closed;
+    public boolean isClosed() {
+        return this.closed.get();
     }
 }


Reply via email to