You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/10/13 09:54:40 UTC

[2/2] stratos git commit: fixing possible NPEs when application monitor is not there

fixing possible NPEs when application monitor is not there


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

Branch: refs/heads/stratos-4.1.x
Commit: 912a24a6d4f12462260666382e812c1b24c34c6f
Parents: eacf517
Author: reka <rt...@gmail.com>
Authored: Wed Oct 7 18:20:00 2015 +0530
Committer: reka <rt...@gmail.com>
Committed: Tue Oct 13 13:24:20 2015 +0530

----------------------------------------------------------------------
 .../applications/topic/ApplicationBuilder.java           | 11 +++++++----
 .../topology/AutoscalerTopologyEventReceiver.java        |  2 +-
 .../autoscaler/monitor/component/GroupMonitor.java       |  4 ++--
 3 files changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/912a24a6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index 2f1b5f0..1c99a1c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -419,7 +419,8 @@ public class ApplicationBuilder {
                         getAppMonitor(appId);
 
                 if (monitor != null) {
-                    if (monitor.hasMonitors() && applicationMonitor.isTerminating()) {
+                    if (monitor.hasMonitors() && applicationMonitor != null &&
+                            !applicationMonitor.isForce() && applicationMonitor.isTerminating()) {
                         for (Monitor monitor1 : monitor.
                                 getAliasToActiveChildMonitorsMap().values()) {
                             //destroying the drools
@@ -427,8 +428,7 @@ public class ApplicationBuilder {
                         }
                     }
                     org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext networkPartitionContext =
-                            (org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext) monitor.
-                                    getNetworkPartitionContext(groupInstance.getNetworkPartitionId());
+                            monitor.getNetworkPartitionContext(groupInstance.getNetworkPartitionId());
                     networkPartitionContext.removeInstanceContext(instanceId);
                     if (groupInstance.getPartitionId() != null) {
                         networkPartitionContext.getPartitionCtxt(groupInstance.getPartitionId()).
@@ -438,7 +438,10 @@ public class ApplicationBuilder {
                     group.removeInstance(instanceId);
                     ApplicationHolder.persistApplication(application);
                     ApplicationsEventPublisher.sendGroupInstanceTerminatedEvent(appId, groupId, instanceId);
-                    monitor.setStatus(status, instanceId, parentId);
+                    if(applicationMonitor != null && !applicationMonitor.isForce()) {
+                        //If force un-deployment, then no need to notify the parent
+                        monitor.setStatus(status, instanceId, parentId);
+                    }
                 }
             } else {
                 log.warn("Group state transition is not valid: [group-id] " + groupId +

http://git-wip-us.apache.org/repos/asf/stratos/blob/912a24a6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index 2573991..ef31b97 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -312,7 +312,7 @@ public class AutoscalerTopologyEventReceiver {
                     // if the cluster monitor is null, assume that its termianted
                     appMonitor = AutoscalerContext.getInstance().
                             getAppMonitor(clusterTerminatedEvent.getAppId());
-                    if (appMonitor != null) {
+                    if (appMonitor != null && !appMonitor.isForce()) {
                         appMonitor.onChildStatusEvent(
                                 new ClusterStatusEvent(ClusterStatus.Terminated,
                                         clusterId, instanceId));

http://git-wip-us.apache.org/repos/asf/stratos/blob/912a24a6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index 3136ed0..341f264 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -160,7 +160,7 @@ public class GroupMonitor extends ParentComponentMonitor {
 
                     //When the application is getting un-deployed, need to avoid
                     // checking the minimum count sanctification
-                    if (!applicationMonitor.isTerminating()) {
+                    if (applicationMonitor!= null && !applicationMonitor.isTerminating()) {
                         Collection<Instance> parentInstances = parent.getInstances();
 
                         for (Instance parentInstance : parentInstances) {
@@ -510,7 +510,7 @@ public class GroupMonitor extends ParentComponentMonitor {
         ApplicationMonitor applicationMonitor = AutoscalerContext.getInstance().
                 getAppMonitor(appId);
         //If application is forcefully un-deployed, no need to handle here.
-        if(!applicationMonitor.isForce()) {
+        if(applicationMonitor != null && !applicationMonitor.isForce()) {
             GroupInstance instance = (GroupInstance) instanceIdToInstanceMap.get(instanceId);
             if (instance != null) {