Updated Branches:
  refs/heads/master 85c511639 -> 524e6a29a

AutoscalerRuleEvaluator singlton class's syncronization improved


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

Branch: refs/heads/master
Commit: 0561054a0e120708f16d0fca7f3c51e02085cc67
Parents: 9e95f8f
Author: Lahiru Sandaruwan <[email protected]>
Authored: Mon Dec 9 16:47:55 2013 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Mon Dec 9 16:47:55 2013 +0530

----------------------------------------------------------------------
 .../rule/AutoscalerRuleEvaluator.java           | 36 +++++++++++---------
 1 file changed, 20 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0561054a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
index 7e267b4..02738c9 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
@@ -19,29 +19,29 @@
 
 package org.apache.stratos.autoscaler.rule;
 
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.ClusterMonitor;
+import org.apache.stratos.autoscaler.Constants;
+import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm;
+import org.apache.stratos.autoscaler.algorithm.OneAfterAnother;
+import org.apache.stratos.autoscaler.algorithm.PartitionGroupOneAfterAnother;
+import org.apache.stratos.autoscaler.algorithm.RoundRobin;
 import 
org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
+import org.apache.stratos.cloud.controller.deployment.partition.Partition;
+import org.apache.stratos.cloud.controller.pojo.MemberContext;
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseFactory;
 import org.drools.builder.*;
 import org.drools.io.Resource;
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.wso2.carbon.utils.CarbonUtils;
-import org.apache.stratos.autoscaler.Constants;
-import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm;
-import org.apache.stratos.autoscaler.algorithm.OneAfterAnother;
-import org.apache.stratos.autoscaler.algorithm.RoundRobin;
-import org.apache.stratos.autoscaler.algorithm.PartitionGroupOneAfterAnother;
-import org.apache.stratos.cloud.controller.deployment.partition.Partition;
-import org.apache.stratos.cloud.controller.pojo.MemberContext;
 import org.drools.runtime.rule.FactHandle;
+import org.wso2.carbon.utils.CarbonUtils;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * This class is responsible for evaluating the current details of topology, 
statistics, and health
@@ -154,11 +154,15 @@ public class AutoscalerRuleEvaluator {
 //             return false;
 //     }
 
-    public static synchronized AutoscalerRuleEvaluator getInstance() {
-            if (instance == null) {
-                    instance = new AutoscalerRuleEvaluator ();
+    public static AutoscalerRuleEvaluator getInstance() {
+        if (instance == null) {
+            synchronized (AutoscalerRuleEvaluator.class){
+                if (instance == null) {
+                    instance = new AutoscalerRuleEvaluator();
+                }
             }
-            return instance;
+        }
+        return instance;
     }
     
     private KnowledgeBase readKnowledgeBase() throws Exception {

Reply via email to