You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2013/12/20 04:14:59 UTC
git commit: Fixing possible NPEs when health stat come before member
activated
Updated Branches:
refs/heads/master 375bd1699 -> 58b06ce91
Fixing possible NPEs when health stat come before member activated
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/58b06ce9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/58b06ce9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/58b06ce9
Branch: refs/heads/master
Commit: 58b06ce9193aa1bb2551db9097b6063cf1ac98a1
Parents: 375bd16
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Fri Dec 20 08:49:24 2013 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Fri Dec 20 08:49:24 2013 +0530
----------------------------------------------------------------------
.../health/HealthEventMessageDelegator.java | 31 ++++++++++++++++----
.../autoscaler/monitor/AbstractMonitor.java | 12 --------
2 files changed, 26 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/58b06ce9/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
index d8171e7..cab71e6 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/HealthEventMessageDelegator.java
@@ -22,10 +22,7 @@ import com.google.gson.stream.JsonReader;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.AutoscalerContext;
-import org.apache.stratos.autoscaler.Constants;
-import org.apache.stratos.autoscaler.NetworkPartitionContext;
-import org.apache.stratos.autoscaler.PartitionContext;
+import org.apache.stratos.autoscaler.*;
import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
import org.apache.stratos.autoscaler.exception.SpawningException;
import org.apache.stratos.autoscaler.exception.TerminationException;
@@ -213,6 +210,14 @@ public class HealthEventMessageDelegator implements Runnable {
private LoadAverage findLoadAverage(Event event) {
String memberId = event.getProperties().get("member_id");
Member member = findMember(memberId);
+
+ if(member.isActive()){
+ if(log.isDebugEnabled()){
+ log.debug(String.format("Member activated event has not received for the member %s. Therefore ignoring" +
+ " the load average health stat", memberId));
+ }
+ return null;
+ }
if(member != null) {
String networkPartitionId = findNetworkPartitionId(memberId);
LoadAverage loadAverage = AutoscalerContext.getInstance().getMonitor(member.getClusterId())
@@ -240,6 +245,15 @@ public class HealthEventMessageDelegator implements Runnable {
private MemoryConsumption findMemoryConsumption(Event event) {
String memberId = event.getProperties().get("member_id");
Member member = findMember(memberId);
+
+ if(member.isActive()){
+ if(log.isDebugEnabled()){
+ log.debug(String.format("Member activated event has not received for the member %s. Therefore ignoring" +
+ " the health stat", memberId));
+ }
+ return null;
+ }
+
if(member != null) {
String networkPartitionId = findNetworkPartitionId(memberId);
MemoryConsumption memoryConsumption = AutoscalerContext.getInstance().getMonitor(member.getClusterId())
@@ -333,7 +347,14 @@ public class HealthEventMessageDelegator implements Runnable {
NetworkPartitionContext nwPartitionCtxt;
try{
TopologyManager.acquireReadLock();
- Member member = monitor.getMember(memberId);
+ Member member = findMember(memberId);
+ if(!member.isActive()){
+ if(log.isDebugEnabled()){
+ log.debug(String.format("Member activated event has not received for the member %s. Therefore ignoring" +
+ " the member fault health stat", memberId));
+ }
+ return;
+ }
if (null == member) {
// member has already terminated. So no action required
return;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/58b06ce9/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
index aa2bb8c..30ed61a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractMonitor.java
@@ -88,18 +88,6 @@ import org.drools.runtime.rule.FactHandle;
}
return null;
}
-
- public Member getMember(String memberId){
-
- for(Service service: TopologyManager.getTopology().getServices()){
- for(Cluster cluster: service.getClusters()){
- if(cluster.memberExists(memberId)){
- return cluster.getMember(memberId);
- }
- }
- }
- return null;
- }
public void destroy() {
minCheckKnowledgeSession.dispose();