[jboss-cvs] JBossAS SVN: r77375 - trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/load/impl.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Aug 22 18:51:24 EDT 2008


Author: pferraro
Date: 2008-08-22 18:51:24 -0400 (Fri, 22 Aug 2008)
New Revision: 77375

Modified:
   trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/load/impl/DynamicLoadBalanceFactorProvider.java
Log:
Fix recordLoad(...) if history changes during iterations.

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/load/impl/DynamicLoadBalanceFactorProvider.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/load/impl/DynamicLoadBalanceFactorProvider.java	2008-08-22 21:20:30 UTC (rev 77374)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/modcluster/load/impl/DynamicLoadBalanceFactorProvider.java	2008-08-22 22:51:24 UTC (rev 77375)
@@ -116,7 +116,7 @@
       }
 
       // Convert load ratio to integer percentage and invert to express as "load factor"
-      return 100 - ((int) (100 * totalWeightedLoad / totalWeight));
+      return 100 - (int) Math.round(100 * totalWeightedLoad / totalWeight);
    }
    
    private List<Double> recordLoad(LoadMetric metric, double load)
@@ -129,10 +129,12 @@
          
          this.loadHistory.put(metric, queue);
       }
-      // Remove tail of list if at capacity
-      else if (queue.size() == this.history)
+      else
       {
-         queue.remove(queue.size() - 1);
+         for (int i = queue.size(); i >= this.history; --i)
+         {
+            queue.remove(i - 1);
+         }
       }
       
       queue.add(0, new Double(load));




More information about the jboss-cvs-commits mailing list