JAMES-1877 VolatileIsDestroyed is not needed

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1f01e8ad
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1f01e8ad
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1f01e8ad

Branch: refs/heads/master
Commit: 1f01e8ad204e7b1620457e77026b510066f74b68
Parents: 9646571
Author: Benoit Tellier <[email protected]>
Authored: Thu Dec 8 09:59:02 2016 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Tue Jan 10 18:14:26 2017 +0700

----------------------------------------------------------------------
 .../james/transport/mailets/RemoteDelivery.java | 10 ++---
 .../remoteDelivery/DeliveryRunnable.java        | 15 +++----
 .../remoteDelivery/VolatileIsDestroyed.java     | 36 -----------------
 .../remoteDelivery/VolatileIsDestroyedTest.java | 41 --------------------
 4 files changed, 13 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/1f01e8ad/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
index 3a1f17d..006c6bc 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
@@ -25,6 +25,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.inject.Inject;
 import javax.mail.MessagingException;
@@ -41,7 +42,6 @@ import 
org.apache.james.transport.mailets.remoteDelivery.Bouncer;
 import org.apache.james.transport.mailets.remoteDelivery.DeliveryRunnable;
 import 
org.apache.james.transport.mailets.remoteDelivery.RemoteDeliveryConfiguration;
 import 
org.apache.james.transport.mailets.remoteDelivery.RemoteDeliverySocketFactory;
-import org.apache.james.transport.mailets.remoteDelivery.VolatileIsDestroyed;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
@@ -133,7 +133,7 @@ public class RemoteDelivery extends GenericMailet {
     private final DomainList domainList;
     private final MailQueueFactory queueFactory;
     private final Metric outgoingMailsMetric;
-    private final VolatileIsDestroyed volatileIsDestroyed;
+    private final AtomicBoolean isDestroyed;
     private final THREAD_STATE startThreads;
 
     private MailQueue queue;
@@ -151,7 +151,7 @@ public class RemoteDelivery extends GenericMailet {
         this.domainList = domainList;
         this.queueFactory = queueFactory;
         this.outgoingMailsMetric = metricFactory.generate(OUTGOING_MAILS);
-        this.volatileIsDestroyed = new VolatileIsDestroyed();
+        this.isDestroyed = new AtomicBoolean(false);
         this.startThreads = startThreads;
     }
 
@@ -181,7 +181,7 @@ public class RemoteDelivery extends GenericMailet {
                     logger,
                     getMailetContext(),
                     new Bouncer(configuration, getMailetContext(), logger),
-                    volatileIsDestroyed));
+                    isDestroyed));
         }
     }
 
@@ -259,7 +259,7 @@ public class RemoteDelivery extends GenericMailet {
     @Override
     public synchronized void destroy() {
         if (startThreads == THREAD_STATE.START_THREADS) {
-            volatileIsDestroyed.markAsDestroyed();
+            isDestroyed.set(true);
             executor.shutdown();
             notifyAll();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1f01e8ad/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
index 7af269b..4841402 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
@@ -21,6 +21,7 @@ package org.apache.james.transport.mailets.remoteDelivery;
 
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.lifecycle.api.LifecycleUtil;
@@ -50,33 +51,33 @@ public class DeliveryRunnable implements Runnable {
     private final Logger logger;
     private final Bouncer bouncer;
     private final MailDelivrer mailDelivrer;
-    private final VolatileIsDestroyed volatileIsDestroyed;
+    private final AtomicBoolean isDestroyed;
     private final Supplier<Date> dateSupplier;
 
     public DeliveryRunnable(MailQueue queue, RemoteDeliveryConfiguration 
configuration, DNSService dnsServer, Metric outgoingMailsMetric,
-                            Logger logger, MailetContext mailetContext, 
Bouncer bouncer, VolatileIsDestroyed volatileIsDestroyed) {
+                            Logger logger, MailetContext mailetContext, 
Bouncer bouncer, AtomicBoolean isDestroyed) {
         this(queue, configuration, outgoingMailsMetric, logger, bouncer,
             new MailDelivrer(configuration, new 
MailDelivrerToHost(configuration, mailetContext, logger), dnsServer, bouncer, 
logger),
-            volatileIsDestroyed, CURRENT_DATE_SUPPLIER);
+            isDestroyed, CURRENT_DATE_SUPPLIER);
     }
 
     @VisibleForTesting
     DeliveryRunnable(MailQueue queue, RemoteDeliveryConfiguration 
configuration, Metric outgoingMailsMetric, Logger logger, Bouncer bouncer,
-                     MailDelivrer mailDelivrer, VolatileIsDestroyed 
volatileIsDestroyed, Supplier<Date> dateSupplier) {
+                     MailDelivrer mailDelivrer, AtomicBoolean isDestroyeds, 
Supplier<Date> dateSupplier) {
         this.queue = queue;
         this.configuration = configuration;
         this.outgoingMailsMetric = outgoingMailsMetric;
         this.logger = logger;
         this.bouncer = bouncer;
         this.mailDelivrer = mailDelivrer;
-        this.volatileIsDestroyed = volatileIsDestroyed;
+        this.isDestroyed = isDestroyeds;
         this.dateSupplier = dateSupplier;
     }
 
     @Override
     public void run() {
         try {
-            while (!Thread.interrupted() && 
!volatileIsDestroyed.isDestroyed()) {
+            while (!Thread.interrupted() && !isDestroyed.get()) {
                 runStep();
             }
         } finally {
@@ -112,7 +113,7 @@ public class DeliveryRunnable implements Runnable {
             }
 
         } catch (Throwable e) {
-            if (!volatileIsDestroyed.isDestroyed()) {
+            if (!isDestroyed.get()) {
                 logger.error("Exception caught in RemoteDelivery.run()", e);
             }
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1f01e8ad/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/VolatileIsDestroyed.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/VolatileIsDestroyed.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/VolatileIsDestroyed.java
deleted file mode 100644
index 19d4b36..0000000
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/VolatileIsDestroyed.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.transport.mailets.remoteDelivery;
-
-public class VolatileIsDestroyed {
-    private volatile boolean isDestroyed;
-
-    public VolatileIsDestroyed() {
-        this.isDestroyed = false;
-    }
-
-    public boolean isDestroyed() {
-        return isDestroyed;
-    }
-
-    public void markAsDestroyed() {
-        isDestroyed = true;
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/1f01e8ad/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/VolatileIsDestroyedTest.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/VolatileIsDestroyedTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/VolatileIsDestroyedTest.java
deleted file mode 100644
index dd10c8c..0000000
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/VolatileIsDestroyedTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.transport.mailets.remoteDelivery;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.Test;
-
-public class VolatileIsDestroyedTest {
-
-    @Test
-    public void isDestroyedShouldBeFalseByDefault() {
-        assertThat(new VolatileIsDestroyed().isDestroyed()).isFalse();
-    }
-
-    @Test
-    public void isDestroyedShouldBeTrueWhenMarkedAsDestroyed() {
-        VolatileIsDestroyed volatileIsDestroyed = new VolatileIsDestroyed();
-
-        volatileIsDestroyed.markAsDestroyed();
-
-        assertThat(volatileIsDestroyed.isDestroyed()).isTrue();
-    }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to