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) {

Reply via email to