[jboss-cvs] JBossAS SVN: r110787 - trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/session.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Feb 25 13:50:09 EST 2011


Author: pferraro
Date: 2011-02-25 13:50:09 -0500 (Fri, 25 Feb 2011)
New Revision: 110787

Modified:
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheManager.java
Log:
JBAS-8912 JBossCacheManager.listSessionIds() not accurate when using DIST

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheManager.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheManager.java	2011-02-25 18:04:01 UTC (rev 110786)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/session/JBossCacheManager.java	2011-02-25 18:50:09 UTC (rev 110787)
@@ -23,10 +23,13 @@
 
 import java.security.AccessController;
 import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.ServiceLoader;
 import java.util.Set;
@@ -1157,7 +1160,9 @@
     */
    public String listLocalSessionIds()
    {
-      return reportSessionIds(sessions_.keySet());
+      List<String> ids = new ArrayList<String>(sessions_.size());
+      this.addLocal(ids, sessions_.keySet());
+      return reportSessionIds(ids);
    }
    
    /**
@@ -1165,11 +1170,25 @@
     */
    public String listSessionIds()
    {
-      Set<String> ids = new HashSet<String>(sessions_.keySet());
-      ids.addAll(unloadedSessions_.keySet());
+      Set<String> ids = new HashSet<String>();
+      
+      this.addLocal(ids, sessions_.keySet());
+      this.addLocal(ids, unloadedSessions_.keySet());
+      
       return reportSessionIds(ids);
    }
    
+   private void addLocal(Collection<String> localIds, Collection<String> ids)
+   {
+      for (String id: ids)
+      {
+         if (this.proxy_.isLocal(id))
+         {
+            localIds.add(id);
+         }
+      }
+   }
+   
    // --------------------------------------- LocalDistributableSessionManager
 
    public String getContextName()
@@ -2739,9 +2758,9 @@
       return (getUseJK() ? Util.getRealId(id) : id);
    }
    
-   private String reportSessionIds(Set<String> ids)
+   private String reportSessionIds(Collection<String> ids)
    {
-      StringBuffer sb = new StringBuffer();
+      StringBuilder sb = new StringBuilder();
       boolean added = false;
       for (String id : ids)
       {



More information about the jboss-cvs-commits mailing list