Updated Branches:
  refs/heads/master 30245882f -> b2ba8234c

fixing https://issues.apache.org/jira/browse/STRATOS-449


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

Branch: refs/heads/master
Commit: b2ba8234ccfa64429bdb8526ba0f674229ec6d10
Parents: 3024588
Author: Nirmal Fernando <[email protected]>
Authored: Fri Feb 14 15:57:17 2014 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Fri Feb 14 15:57:17 2014 +0530

----------------------------------------------------------------------
 .../stratos/autoscaler/PartitionContext.java    | 17 +++++++++++++++++
 .../topology/AutoscalerTopologyReceiver.java    | 20 +++++++++++++++-----
 2 files changed, 32 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b2ba8234/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
index 63bdeaa..7fcfa93 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/PartitionContext.java
@@ -166,6 +166,23 @@ public class PartitionContext implements Serializable{
         this.pendingMembers.add(ctxt);
     }
     
+    public boolean removePendingMember(String id) {
+       if (id == null) {
+            return false;
+        }
+
+       for (Iterator<MemberContext> iterator = pendingMembers.iterator(); 
iterator.hasNext();) {
+               MemberContext pendingMember = (MemberContext) iterator.next();
+               if(id.equals(pendingMember.getMemberId())){
+                       iterator.remove();
+                       return true;
+               }
+                       
+               }
+       
+       return false;
+    }
+    
     public void movePendingMemberToActiveMembers(String memberId) {
         if (memberId == null) {
             return;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b2ba8234/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 be22bc7..0efa6e1 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
@@ -236,14 +236,24 @@ public class AutoscalerTopologyReceiver implements 
Runnable {
                 NetworkPartitionContext networkPartitionContext = 
monitor.getNetworkPartitionCtxt(networkPartitionId);
 
                 PartitionContext partitionContext = 
networkPartitionContext.getPartitionCtxt(partitionId);
-                partitionContext.removeMemberStatsContext(e.getMemberId());
-                
if(!partitionContext.removeTerminationPendingMember(e.getMemberId())){
+                String memberId = e.getMemberId();
+                               
partitionContext.removeMemberStatsContext(memberId);
+                
+                if(partitionContext.removePendingMember(memberId)) {
+                       if(log.isDebugEnabled()){
+                        log.debug(String.format("Member is removed from 
pending list: [member] %s", memberId));
+                    }
+                }
+                
+                if(!partitionContext.removeTerminationPendingMember(memberId)){
 
                     if(log.isDebugEnabled()){
-                        log.debug(String.format("Member is not available in 
termination pending list: [member] %s", e.getMemberId()));
+                        log.debug(String.format("Member is not available in 
termination pending list: [member] %s", memberId));
                     }
-                } else if(log.isInfoEnabled()){
-                    log.info(String.format("Member stat context has been 
removed successfully: [member] %s", e.getMemberId()));
+                } 
+                
+                if(log.isInfoEnabled()){
+                    log.info(String.format("Member stat context has been 
removed successfully: [member] %s", memberId));
                 }
 //                partitionContext.decrementCurrentActiveMemberCount(1);
 

Reply via email to