Repository: stratos Updated Branches: refs/heads/master 177a7a43d -> b7840d8ee
Fixing mock instance statistics publisher & instance notifier thread termination logic Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/b7840d8e Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b7840d8e Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b7840d8e Branch: refs/heads/master Commit: b7840d8ee912a2c6bc7a084eeb1879a65625617a Parents: 177a7a4 Author: Imesh Gunaratne <[email protected]> Authored: Sun Mar 8 22:43:12 2015 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Sun Mar 8 22:43:45 2015 +0530 ---------------------------------------------------------------------- .../stratos/mock/iaas/services/impl/MockInstance.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/b7840d8e/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java index fda1bf0..1a7d93f 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java @@ -35,6 +35,7 @@ import org.apache.stratos.messaging.message.receiver.instance.notifier.InstanceN import java.io.Serializable; import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; /** @@ -51,6 +52,8 @@ public class MockInstance implements Runnable, Serializable { private final MockInstanceContext mockMemberContext; private boolean terminated; + private ScheduledFuture<?> healthStatNotifierScheduledFuture; + private InstanceNotifierEventReceiver instanceNotifierEventReceiver; public MockInstance(MockInstanceContext mockMemberContext) { this.mockMemberContext = mockMemberContext; @@ -88,7 +91,7 @@ public class MockInstance implements Runnable, Serializable { log.debug("Starting instance notifier event message receiver"); } - final InstanceNotifierEventReceiver instanceNotifierEventReceiver = new InstanceNotifierEventReceiver(); + instanceNotifierEventReceiver = new InstanceNotifierEventReceiver(); instanceNotifierEventReceiver.addEventListener(new InstanceCleanupClusterEventListener() { @Override protected void onEvent(Event event) { @@ -134,7 +137,7 @@ public class MockInstance implements Runnable, Serializable { log.debug(String.format("Starting health statistics notifier: [member-id] %s", mockMemberContext.getMemberId())); } - healthStatNotifierExecutorService.scheduleAtFixedRate(new MockHealthStatisticsNotifier(mockMemberContext), + healthStatNotifierScheduledFuture = healthStatNotifierExecutorService.scheduleAtFixedRate(new MockHealthStatisticsNotifier(mockMemberContext), 0, HEALTH_STAT_INTERVAL, TimeUnit.SECONDS); if (log.isDebugEnabled()) { @@ -143,11 +146,11 @@ public class MockInstance implements Runnable, Serializable { } private void stopHealthStatisticsPublisher() { - healthStatNotifierExecutorService.shutdownNow(); + healthStatNotifierScheduledFuture.cancel(true); } private void stopInstanceNotifierReceiver() { - eventListenerExecutorService.shutdownNow(); + instanceNotifierEventReceiver.terminate(); } private void sleep(long time) {
