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]
