Repository: incubator-stratos
Updated Branches:
  refs/heads/master aba72724a -> 7744e6dec


Added catch clauses to event listeners


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/7744e6de
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/7744e6de
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/7744e6de

Branch: refs/heads/master
Commit: 7744e6deca47083d85c2e4c0b7a026c3aa898aeb
Parents: aba7272
Author: Imesh Gunaratne <[email protected]>
Authored: Thu Apr 17 19:54:50 2014 +0530
Committer: Imesh Gunaratne <[email protected]>
Committed: Thu Apr 17 19:54:50 2014 +0530

----------------------------------------------------------------------
 .../topology/AutoscalerTopologyReceiver.java    | 532 ++++++++++---------
 .../balancer/LoadBalancerTopologyReceiver.java  |  16 +-
 2 files changed, 283 insertions(+), 265 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7744e6de/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java
index 9120e20..1c4a178 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyReceiver.java
@@ -57,7 +57,7 @@ public class AutoscalerTopologyReceiver implements Runnable {
     private boolean terminated;
 
     public AutoscalerTopologyReceiver() {
-               this.topologyReceiver = new 
TopologyReceiver(createMessageDelegator(), new TopologyEventMessageListener());
+        this.topologyReceiver = new TopologyReceiver(createMessageDelegator(), 
new TopologyEventMessageListener());
     }
 
     @Override
@@ -69,18 +69,18 @@ public class AutoscalerTopologyReceiver implements Runnable 
{
         }
         Thread thread = new Thread(topologyReceiver);
         thread.start();
-        if(log.isInfoEnabled()) {
+        if (log.isInfoEnabled()) {
             log.info("Autoscaler topology receiver thread started");
         }
 
         // Keep the thread live until terminated
         while (!terminated) {
-               try {
+            try {
                 Thread.sleep(1000);
             } catch (InterruptedException ignore) {
             }
         }
-        if(log.isInfoEnabled()) {
+        if (log.isInfoEnabled()) {
             log.info("Autoscaler topology receiver thread terminated");
         }
     }
@@ -97,18 +97,19 @@ public class AutoscalerTopologyReceiver implements Runnable 
{
             @Override
             protected void onEvent(Event event) {
 
-            try {
-                TopologyManager.acquireReadLock();
-                for(Service service : 
TopologyManager.getTopology().getServices()) {
-                                               for (Cluster cluster : 
service.getClusters()) {
-                                                       
startClusterMonitor(cluster);
-                                               }
+                try {
+                    TopologyManager.acquireReadLock();
+                    for (Service service : 
TopologyManager.getTopology().getServices()) {
+                        for (Cluster cluster : service.getClusters()) {
+                            startClusterMonitor(cluster);
+                        }
+                    }
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
+                } finally {
+                    TopologyManager.releaseReadLock();
                 }
             }
-            finally {
-                TopologyManager.releaseReadLock();
-            }
-            }
 
 
         });
@@ -116,171 +117,178 @@ public class AutoscalerTopologyReceiver implements 
Runnable {
         processorChain.addEventListener(new ClusterCreatedEventListener() {
             @Override
             protected void onEvent(Event event) {
-            try {
-               log.info("Event received: "+event);
-                ClusterCreatedEvent e = (ClusterCreatedEvent) event;
-                TopologyManager.acquireReadLock();
-                Service service = 
TopologyManager.getTopology().getService(e.getServiceName());
-                Cluster cluster = service.getCluster(e.getClusterId());
-                startClusterMonitor(cluster);
-            } finally {
-                TopologyManager.releaseReadLock();
+                try {
+                    log.info("Event received: " + event);
+                    ClusterCreatedEvent e = (ClusterCreatedEvent) event;
+                    TopologyManager.acquireReadLock();
+                    Service service = 
TopologyManager.getTopology().getService(e.getServiceName());
+                    Cluster cluster = service.getCluster(e.getClusterId());
+                    startClusterMonitor(cluster);
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
+                } finally {
+                    TopologyManager.releaseReadLock();
+                }
             }
+
+        });
+
+        processorChain.addEventListener(new ClusterRemovedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+                try {
+                    ClusterRemovedEvent e = (ClusterRemovedEvent) event;
+                    TopologyManager.acquireReadLock();
+
+                    String serviceName = e.getServiceName();
+                    String clusterId = e.getClusterId();
+                    String deploymentPolicy = e.getDeploymentPolicy();
+
+                    AbstractMonitor monitor;
+
+                    if (e.isLbCluster()) {
+                        DeploymentPolicy depPolicy = 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicy);
+                        if (depPolicy != null) {
+                            List<NetworkPartitionLbHolder> lbHolders = 
PartitionManager.getInstance()
+                                    .getNetworkPartitionLbHolders(depPolicy);
+
+                            for (NetworkPartitionLbHolder 
networkPartitionLbHolder : lbHolders) {
+                                // removes lb cluster ids
+                                boolean isRemoved = 
networkPartitionLbHolder.removeLbClusterId(clusterId);
+                                if (isRemoved) {
+                                    log.info("Removed the lb cluster [id]:"
+                                            + clusterId
+                                            + " reference from Network 
Partition [id]: "
+                                            + networkPartitionLbHolder
+                                            .getNetworkPartitionId());
+
+                                }
+                                if (log.isDebugEnabled()) {
+                                    log.debug(networkPartitionLbHolder);
+                                }
+
+                            }
+                        }
+                        monitor = AutoscalerContext.getInstance()
+                                .removeLbMonitor(clusterId);
+
+                    } else {
+                        monitor = AutoscalerContext.getInstance()
+                                .removeMonitor(clusterId);
+                    }
+
+                    // runTerminateAllRule(monitor);
+                    if (monitor != null) {
+                        monitor.destroy();
+                        log.info(String.format("Cluster monitor has been 
removed successfully: [cluster] %s ",
+                                clusterId));
+                    }
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
+                } finally {
+                    TopologyManager.releaseReadLock();
+                }
             }
 
         });
-        
-               processorChain.addEventListener(new 
ClusterRemovedEventListener() {
-                       @Override
-                       protected void onEvent(Event event) {
-                               try {
-                                       ClusterRemovedEvent e = 
(ClusterRemovedEvent) event;
-                                       TopologyManager.acquireReadLock();
-                                       
-                                       String serviceName = e.getServiceName();
-                                       String clusterId = e.getClusterId();
-                                       String deploymentPolicy = 
e.getDeploymentPolicy();
-                                       
-                                       AbstractMonitor monitor;
-
-                                       if (e.isLbCluster()) {
-                                               DeploymentPolicy depPolicy = 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicy);
-                                               if (depPolicy != null) {
-                                                       
List<NetworkPartitionLbHolder> lbHolders = PartitionManager.getInstance()
-                                                                       
.getNetworkPartitionLbHolders(depPolicy);
-                                                       
-                                                       for 
(NetworkPartitionLbHolder networkPartitionLbHolder : lbHolders) {
-                                                               // removes lb 
cluster ids
-                                                               boolean 
isRemoved = networkPartitionLbHolder.removeLbClusterId(clusterId);
-                                                               if (isRemoved) {
-                                                                       
log.info("Removed the lb cluster [id]:"
-                                                                               
        + clusterId
-                                                                               
        + " reference from Network Partition [id]: "
-                                                                               
        + networkPartitionLbHolder
-                                                                               
                        .getNetworkPartitionId());
-
-                                                               }
-                                                               if 
(log.isDebugEnabled()) {
-                                                                       
log.debug(networkPartitionLbHolder);
-                                                               }
-                                                               
-                                                       }
-                                               }
-                                               monitor = 
AutoscalerContext.getInstance()
-                                                               
.removeLbMonitor(clusterId);
-
-                                       } else {
-                                               monitor = 
AutoscalerContext.getInstance()
-                                                               
.removeMonitor(clusterId);
-                                       }
-
-                                       // runTerminateAllRule(monitor);
-                                       if (monitor != null) {
-                                               monitor.destroy();
-                                               log.info(String.format("Cluster 
monitor has been removed successfully: [cluster] %s ",
-                                                                               
clusterId));
-                                       } 
-                               } finally {
-                                       TopologyManager.releaseReadLock();
-                               }
-                       }
-
-               });
-        
+
         processorChain.addEventListener(new MemberStartedEventListener() {
             @Override
             protected void onEvent(Event event) {
-                       
+
             }
 
         });
-        
+
         processorChain.addEventListener(new MemberTerminatedEventListener() {
             @Override
             protected void onEvent(Event event) {
-             
-            try {
-                TopologyManager.acquireReadLock();
-                MemberTerminatedEvent e = (MemberTerminatedEvent) event;
-                String networkPartitionId = e.getNetworkPartitionId();
-                String clusterId = e.getClusterId();
-                String partitionId = e.getPartitionId();
-                AbstractMonitor monitor;
-
-                if(AutoscalerContext.getInstance().monitorExist(clusterId)){
-                    monitor = 
AutoscalerContext.getInstance().getMonitor(clusterId);
-                } else {
-                    //This is LB member
-                    monitor = 
AutoscalerContext.getInstance().getLBMonitor(clusterId);
-                }
-
-                NetworkPartitionContext networkPartitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId);
 
-                PartitionContext partitionContext = 
networkPartitionContext.getPartitionCtxt(partitionId);
-                String memberId = e.getMemberId();
-                               
partitionContext.removeMemberStatsContext(memberId);
+                try {
+                    TopologyManager.acquireReadLock();
+                    MemberTerminatedEvent e = (MemberTerminatedEvent) event;
+                    String networkPartitionId = e.getNetworkPartitionId();
+                    String clusterId = e.getClusterId();
+                    String partitionId = e.getPartitionId();
+                    AbstractMonitor monitor;
+
+                    if 
(AutoscalerContext.getInstance().monitorExist(clusterId)) {
+                        monitor = 
AutoscalerContext.getInstance().getMonitor(clusterId);
+                    } else {
+                        //This is LB member
+                        monitor = 
AutoscalerContext.getInstance().getLBMonitor(clusterId);
+                    }
 
-                if(partitionContext.removeTerminationPendingMember(memberId)){
-                    if(log.isDebugEnabled()){
-                        log.debug(String.format("Member is removed from 
termination pending members list: [member] %s", memberId));
+                    NetworkPartitionContext networkPartitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId);
+
+                    PartitionContext partitionContext = 
networkPartitionContext.getPartitionCtxt(partitionId);
+                    String memberId = e.getMemberId();
+                    partitionContext.removeMemberStatsContext(memberId);
+
+                    if 
(partitionContext.removeTerminationPendingMember(memberId)) {
+                        if (log.isDebugEnabled()) {
+                            log.debug(String.format("Member is removed from 
termination pending members list: [member] %s", memberId));
+                        }
+                    } else if (partitionContext.removePendingMember(memberId)) 
{
+                        if (log.isDebugEnabled()) {
+                            log.debug(String.format("Member is removed from 
pending members list: [member] %s", memberId));
+                        }
+                    } else if 
(partitionContext.removeActiveMemberById(memberId)) {
+                        log.warn(String.format("Member is in the wrong list 
and it is removed from active members list", memberId));
+                    } else {
+                        log.warn(String.format("Member is not available in any 
of the list active, pending and termination pending", memberId));
                     }
-                } else if(partitionContext.removePendingMember(memberId)) {
-                    if(log.isDebugEnabled()){
-                        log.debug(String.format("Member is removed from 
pending members list: [member] %s", memberId));
+
+                    if (log.isInfoEnabled()) {
+                        log.info(String.format("Member stat context has been 
removed successfully: [member] %s", memberId));
                     }
-                } else if(partitionContext.removeActiveMemberById(memberId)){
-                    log.warn(String.format("Member is in the wrong list and it 
is removed from active members list", memberId));
-                } else {
-                    log.warn(String.format("Member is not available in any of 
the list active, pending and termination pending", memberId));
-                }
-                
-                if(log.isInfoEnabled()){
-                    log.info(String.format("Member stat context has been 
removed successfully: [member] %s", memberId));
-                }
 //                partitionContext.decrementCurrentActiveMemberCount(1);
 
 
-            } finally {
-                TopologyManager.releaseReadLock();
-            }
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
+                } finally {
+                    TopologyManager.releaseReadLock();
+                }
             }
 
         });
-        
+
         processorChain.addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
 
-            try {
-                TopologyManager.acquireReadLock();
-
-                MemberActivatedEvent e = (MemberActivatedEvent)event;
-                String memberId = e.getMemberId();
-                String partitionId = e.getPartitionId();
-                String networkPartitionId = e.getNetworkPartitionId();
-
-                PartitionContext partitionContext;
-                String clusterId = e.getClusterId();
-                AbstractMonitor monitor;
-
-                if(AutoscalerContext.getInstance().monitorExist(clusterId)) {
-                    monitor = 
AutoscalerContext.getInstance().getMonitor(clusterId);
-                    partitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId);
-                } else {
-                    monitor = 
AutoscalerContext.getInstance().getLBMonitor(clusterId);
-                    partitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId);
-                }
-                partitionContext.addMemberStatsContext(new 
MemberStatsContext(memberId));
-                if(log.isInfoEnabled()){
-                    log.info(String.format("Member stat context has been added 
successfully: [member] %s", memberId));
-                }
+                try {
+                    TopologyManager.acquireReadLock();
+
+                    MemberActivatedEvent e = (MemberActivatedEvent) event;
+                    String memberId = e.getMemberId();
+                    String partitionId = e.getPartitionId();
+                    String networkPartitionId = e.getNetworkPartitionId();
+
+                    PartitionContext partitionContext;
+                    String clusterId = e.getClusterId();
+                    AbstractMonitor monitor;
+
+                    if 
(AutoscalerContext.getInstance().monitorExist(clusterId)) {
+                        monitor = 
AutoscalerContext.getInstance().getMonitor(clusterId);
+                        partitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId);
+                    } else {
+                        monitor = 
AutoscalerContext.getInstance().getLBMonitor(clusterId);
+                        partitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId);
+                    }
+                    partitionContext.addMemberStatsContext(new 
MemberStatsContext(memberId));
+                    if (log.isInfoEnabled()) {
+                        log.info(String.format("Member stat context has been 
added successfully: [member] %s", memberId));
+                    }
 //                partitionContext.incrementCurrentActiveMemberCount(1);
-                partitionContext.movePendingMemberToActiveMembers(memberId);
+                    
partitionContext.movePendingMemberToActiveMembers(memberId);
 
-            }
-            finally{
-                TopologyManager.releaseReadLock();
-            }
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
+                } finally {
+                    TopologyManager.releaseReadLock();
+                }
             }
         });
 
@@ -289,38 +297,39 @@ public class AutoscalerTopologyReceiver implements 
Runnable {
             @Override
             protected void onEvent(Event event) {
 
-            try {
-                TopologyManager.acquireReadLock();
-
-                MemberMaintenanceModeEvent e = 
(MemberMaintenanceModeEvent)event;
-                String memberId = e.getMemberId();
-                String partitionId = e.getPartitionId();
-                String networkPartitionId = e.getNetworkPartitionId();
-
-                PartitionContext partitionContext;
-                String clusterId = e.getClusterId();
-                AbstractMonitor monitor;
-
-                if(AutoscalerContext.getInstance().monitorExist(clusterId)) {
-                    monitor = 
AutoscalerContext.getInstance().getMonitor(clusterId);
-                    partitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId);
-                } else {
-                    monitor = 
AutoscalerContext.getInstance().getLBMonitor(clusterId);
-                    partitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId);
-                }
-                partitionContext.addMemberStatsContext(new 
MemberStatsContext(memberId));
-                if(log.isDebugEnabled()){
-                    log.debug(String.format("Member has been moved as pending 
termination: [member] %s", memberId));
-                }
-                
partitionContext.moveActiveMemberToTerminationPendingMembers(memberId);
+                try {
+                    TopologyManager.acquireReadLock();
 
-            }
-            finally{
-                TopologyManager.releaseReadLock();
-            }
+                    MemberMaintenanceModeEvent e = 
(MemberMaintenanceModeEvent) event;
+                    String memberId = e.getMemberId();
+                    String partitionId = e.getPartitionId();
+                    String networkPartitionId = e.getNetworkPartitionId();
+
+                    PartitionContext partitionContext;
+                    String clusterId = e.getClusterId();
+                    AbstractMonitor monitor;
+
+                    if 
(AutoscalerContext.getInstance().monitorExist(clusterId)) {
+                        monitor = 
AutoscalerContext.getInstance().getMonitor(clusterId);
+                        partitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId);
+                    } else {
+                        monitor = 
AutoscalerContext.getInstance().getLBMonitor(clusterId);
+                        partitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId).getPartitionCtxt(partitionId);
+                    }
+                    partitionContext.addMemberStatsContext(new 
MemberStatsContext(memberId));
+                    if (log.isDebugEnabled()) {
+                        log.debug(String.format("Member has been moved as 
pending termination: [member] %s", memberId));
+                    }
+                    
partitionContext.moveActiveMemberToTerminationPendingMembers(memberId);
+
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
+                } finally {
+                    TopologyManager.releaseReadLock();
+                }
             }
         });
-        
+
         processorChain.addEventListener(new ServiceRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -342,10 +351,10 @@ public class AutoscalerTopologyReceiver implements 
Runnable {
         });
         return processorChain;
     }
-    
+
     private class LBClusterMonitorAdder implements Runnable {
         private Cluster cluster;
-        
+
         public LBClusterMonitorAdder(Cluster cluster) {
             this.cluster = cluster;
         }
@@ -355,46 +364,46 @@ public class AutoscalerTopologyReceiver implements 
Runnable {
             int retries = 5;
             boolean success = false;
             do {
-               try {
-                                       Thread.sleep(5000);
-                               } catch (InterruptedException e1) {
-                               }
-               try {
-                       monitor = AutoscalerUtil.getLBClusterMonitor(cluster);
-                       success = true;
-                       
-               } catch (PolicyValidationException e) {
-                       String msg = "LB Cluster monitor creation failed for 
cluster: "+cluster.getClusterId();
-                       log.debug(msg, e);
-                       retries--;
-                       
-               } catch(PartitionValidationException e){
-                       String msg = "LB Cluster monitor creation failed for 
cluster: "+cluster.getClusterId();
-                       log.debug(msg, e);
-                       retries--;
-               }
+                try {
+                    Thread.sleep(5000);
+                } catch (InterruptedException e1) {
+                }
+                try {
+                    monitor = AutoscalerUtil.getLBClusterMonitor(cluster);
+                    success = true;
+
+                } catch (PolicyValidationException e) {
+                    String msg = "LB Cluster monitor creation failed for 
cluster: " + cluster.getClusterId();
+                    log.debug(msg, e);
+                    retries--;
+
+                } catch (PartitionValidationException e) {
+                    String msg = "LB Cluster monitor creation failed for 
cluster: " + cluster.getClusterId();
+                    log.debug(msg, e);
+                    retries--;
+                }
             } while (!success && retries <= 0);
-            
+
             if (monitor == null) {
-               String msg = "LB Cluster monitor creation failed, even after 
retrying for 5 times, "
-                               + "for cluster: "+cluster.getClusterId();
-               log.error(msg);
-               throw new RuntimeException(msg);
+                String msg = "LB Cluster monitor creation failed, even after 
retrying for 5 times, "
+                        + "for cluster: " + cluster.getClusterId();
+                log.error(msg);
+                throw new RuntimeException(msg);
             }
 
             Thread th = new Thread(monitor);
             th.start();
             AutoscalerContext.getInstance().addLbMonitor(monitor);
-            if(log.isInfoEnabled()){
+            if (log.isInfoEnabled()) {
                 log.info(String.format("LB Cluster monitor has been added 
successfully: [cluster] %s",
-                                                        
cluster.getClusterId()));
+                        cluster.getClusterId()));
             }
         }
     }
-    
+
     private class ClusterMonitorAdder implements Runnable {
         private Cluster cluster;
-        
+
         public ClusterMonitorAdder(Cluster cluster) {
             this.cluster = cluster;
         }
@@ -404,51 +413,51 @@ public class AutoscalerTopologyReceiver implements 
Runnable {
             int retries = 5;
             boolean success = false;
             do {
-               try {
-                                       Thread.sleep(5000);
-                               } catch (InterruptedException e1) {
-                               }
-               
-               try {
-                       monitor = AutoscalerUtil.getClusterMonitor(cluster);
-                       success = true;
-                       
-               } catch (PolicyValidationException e) {
-                       String msg = "Cluster monitor creation failed for 
cluster: "+cluster.getClusterId();
-                       log.debug(msg, e);
-                       retries--;
-                       
-               } catch(PartitionValidationException e){
-                       String msg = "Cluster monitor creation failed for 
cluster: "+cluster.getClusterId();
-                       log.debug(msg, e);
-                       retries--;
-               }
+                try {
+                    Thread.sleep(5000);
+                } catch (InterruptedException e1) {
+                }
+
+                try {
+                    monitor = AutoscalerUtil.getClusterMonitor(cluster);
+                    success = true;
+
+                } catch (PolicyValidationException e) {
+                    String msg = "Cluster monitor creation failed for cluster: 
" + cluster.getClusterId();
+                    log.debug(msg, e);
+                    retries--;
+
+                } catch (PartitionValidationException e) {
+                    String msg = "Cluster monitor creation failed for cluster: 
" + cluster.getClusterId();
+                    log.debug(msg, e);
+                    retries--;
+                }
             } while (!success && retries != 0);
-            
+
             if (monitor == null) {
-               String msg = "Cluster monitor creation failed, even after 
retrying for 5 times, "
-                               + "for cluster: "+cluster.getClusterId();
-               log.error(msg);
-               throw new RuntimeException(msg);
+                String msg = "Cluster monitor creation failed, even after 
retrying for 5 times, "
+                        + "for cluster: " + cluster.getClusterId();
+                log.error(msg);
+                throw new RuntimeException(msg);
             }
 
             Thread th = new Thread(monitor);
             th.start();
             AutoscalerContext.getInstance().addMonitor(monitor);
-            if(log.isInfoEnabled()){
+            if (log.isInfoEnabled()) {
                 log.info(String.format("Cluster monitor has been added 
successfully: [cluster] %s",
-                                                        
cluster.getClusterId()));
+                        cluster.getClusterId()));
             }
         }
     }
 
-    private void runTerminateAllRule(AbstractMonitor monitor){
+    private void runTerminateAllRule(AbstractMonitor monitor) {
 
         FactHandle terminateAllFactHandle = null;
 
         StatefulKnowledgeSession terminateAllKnowledgeSession = null;
 
-        for(NetworkPartitionContext networkPartitionContext: 
monitor.getNetworkPartitionCtxts().values()) {
+        for (NetworkPartitionContext networkPartitionContext : 
monitor.getNetworkPartitionCtxts().values()) {
             terminateAllFactHandle = 
AutoscalerRuleEvaluator.evaluateTerminateAll(terminateAllKnowledgeSession
                     , terminateAllFactHandle, networkPartitionContext);
         }
@@ -462,31 +471,32 @@ public class AutoscalerTopologyReceiver implements 
Runnable {
         topologyReceiver.terminate();
         terminated = true;
     }
-    
+
     protected synchronized void startClusterMonitor(Cluster cluster) {
-       Thread th = null;
-       if (cluster.isLbCluster()
-                       && !AutoscalerContext.getInstance()
-                       .lbMonitorExist(
-                                       cluster.getClusterId())) {
-               th = new Thread(new LBClusterMonitorAdder(
-                               cluster));
-       } else if (!cluster.isLbCluster() && !AutoscalerContext.getInstance()
-                       .monitorExist(cluster.getClusterId())) {
-               th = new Thread(
-                               new ClusterMonitorAdder(cluster));
-       }
-       if (th != null) {
-               th.start();
-               try {
-                               th.join();
-                       } catch (InterruptedException ignore) {}
-               
-               if (log.isDebugEnabled()) {
-                       log.debug(String
-                                       .format("Cluster monitor thread has 
been started successfully: [cluster] %s ",
-                                                       
cluster.getClusterId()));
-               }
-       }
+        Thread th = null;
+        if (cluster.isLbCluster()
+                && !AutoscalerContext.getInstance()
+                .lbMonitorExist(
+                        cluster.getClusterId())) {
+            th = new Thread(new LBClusterMonitorAdder(
+                    cluster));
+        } else if (!cluster.isLbCluster() && !AutoscalerContext.getInstance()
+                .monitorExist(cluster.getClusterId())) {
+            th = new Thread(
+                    new ClusterMonitorAdder(cluster));
+        }
+        if (th != null) {
+            th.start();
+            try {
+                th.join();
+            } catch (InterruptedException ignore) {
+            }
+
+            if (log.isDebugEnabled()) {
+                log.debug(String
+                        .format("Cluster monitor thread has been started 
successfully: [cluster] %s ",
+                                cluster.getClusterId()));
+            }
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7744e6de/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyReceiver.java
 
b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyReceiver.java
index 875cad6..c039f1b 100644
--- 
a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyReceiver.java
+++ 
b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyReceiver.java
@@ -65,10 +65,10 @@ public class LoadBalancerTopologyReceiver implements 
Runnable {
 
         // Keep the thread live until terminated
         while (!terminated) {
-               try {
-                               Thread.sleep(1000);
-                       } catch (InterruptedException ignore) {
-                       }
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException ignore) {
+            }
         }
         if (log.isInfoEnabled()) {
             log.info("Load balancer topology receiver thread terminated");
@@ -99,6 +99,8 @@ public class LoadBalancerTopologyReceiver implements Runnable 
{
                             }
                         }
                     }
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
                 } finally {
                     TopologyManager.releaseReadLock();
                 }
@@ -145,6 +147,8 @@ public class LoadBalancerTopologyReceiver implements 
Runnable {
                             log.error(String.format("Service not found in 
topology: [service] %s", memberActivatedEvent.getServiceName()));
                         }
                     }
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
                 } finally {
                     TopologyManager.releaseReadLock();
                 }
@@ -167,6 +171,8 @@ public class LoadBalancerTopologyReceiver implements 
Runnable {
                                     clusterRemovedEvent.getServiceName(), 
clusterRemovedEvent.getClusterId()));
                         }
                     }
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
                 } finally {
                     TopologyManager.releaseReadLock();
                 }
@@ -190,6 +196,8 @@ public class LoadBalancerTopologyReceiver implements 
Runnable {
                             log.warn(String.format("Service not found in 
topology: [service] %s", serviceRemovedEvent.getServiceName()));
                         }
                     }
+                } catch (Exception e) {
+                    log.error("Error processing event", e);
                 } finally {
                     TopologyManager.releaseReadLock();
                 }

Reply via email to