You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/06/22 20:00:34 UTC

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

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();
     }
 }