Author: pero
Date: Sat Jan 26 11:52:28 2008
New Revision: 615478

URL: http://svn.apache.org/viewvc?rev=615478&view=rev
Log:
Fix ManagerServlet.exipreSession throws Exceptions as iterate longer 
session lists at production servers.
Modified:
    tomcat/tc6.0.x/trunk/STATUS.txt
    
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/LocalStrings.properties
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/ManagerServlet.java
    tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=615478&r1=615477&r2=615478&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Sat Jan 26 11:52:28 2008
@@ -38,17 +38,6 @@
   -1: remm: I believe it would need specific support for certain managers. 
Interested users
             could use their own extended manager instead.
 
-* Fix ManagerServlet.expireSessions throws Exceptions as iterate longer 
session lists 
-  at production servers.
-  http://svn.apache.org/viewvc?rev=612988&view=rev
-  +1: pero, rjung, remm
-  -1: 
-      rjung: as pero wrote: the patch contains
-              - r612944 fixed in HTMLManager but not in Manager
-              - a fix aiaginst an exception when listing session idle time
-                histogram and at least one session timed out since last
-                run of invalidation background task
-
 * Fix http://issues.apache.org/bugzilla/show_bug.cgi?id=44223
   Add support for remaining truststore system property
   Not essential for 6.0.16.

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/LocalStrings.properties?rev=615478&r1=615477&r2=615478&view=diff
==============================================================================
--- 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/LocalStrings.properties 
(original)
+++ 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/LocalStrings.properties 
Sat Jan 26 11:52:28 2008
@@ -73,6 +73,7 @@
 managerServlet.noDirectory=FAIL - Non-directory document base for path {0}
 managerServlet.noDocBase=FAIL - Cannot undeploy document base for path {0}
 managerServlet.noGlobal=FAIL - No global JNDI resources are available
+managerServlet.noManager=FAIL - No manager exists for path {0}
 managerServlet.noReload=FAIL - Reload not supported on WAR deployed at path {0}
 managerServlet.noRename=FAIL - Cannot deploy uploaded WAR for path {0}
 managerServlet.noRole=FAIL - User does not possess role {0}

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/ManagerServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/ManagerServlet.java?rev=615478&r1=615477&r2=615478&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/ManagerServlet.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/manager/ManagerServlet.java 
Sat Jan 26 11:52:28 2008
@@ -47,6 +47,7 @@
 import org.apache.catalina.Globals;
 import org.apache.catalina.Host;
 import org.apache.catalina.Lifecycle;
+import org.apache.catalina.Manager;
 import org.apache.catalina.Role;
 import org.apache.catalina.Server;
 import org.apache.catalina.ServerFactory;
@@ -1115,8 +1116,14 @@
                                             RequestUtil.filter(displayPath)));
                 return;
             }
+            Manager manager = context.getManager() ;
+            if(manager == null) {
+               writer.println(sm.getString("managerServlet.noManager",
+               RequestUtil.filter(displayPath)));
+               return;               
+            }
             int maxCount = 60;
-            int maxInactiveInterval = 
context.getManager().getMaxInactiveInterval()/60;
+            int maxInactiveInterval = manager.getMaxInactiveInterval()/60;
             int histoInterval = maxInactiveInterval / maxCount;
             if ( histoInterval * maxCount < maxInactiveInterval ) 
                 histoInterval++;
@@ -1127,13 +1134,13 @@
             writer.println(sm.getString("managerServlet.sessions", 
displayPath));
             writer.println(sm.getString("managerServlet.sessiondefaultmax",
                                 "" + maxInactiveInterval));
-            Session [] sessions = context.getManager().findSessions();
+            Session [] sessions = manager.findSessions();
             int [] timeout = new int[maxCount];
             int notimeout = 0;
             int expired = 0;
             long now = System.currentTimeMillis();
             for (int i = 0; i < sessions.length; i++) {
-                int time = (int)((now-sessions[i].getLastAccessedTime())/1000);
+                int time = 
(int)((now-sessions[i].getLastAccessedTimeInternal())/1000);
                 if (idle >= 0 && time >= idle*60) {
                     sessions[i].expire();
                     idle++;

Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=615478&r1=615477&r2=615478&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Sat Jan 26 11:52:28 2008
@@ -100,6 +100,10 @@
   </subsection>
   <subsection name="Catalina">
     <changelog>
+      <fix>
+        Fix ManagerServlet.exipreSession throws Exceptions as iterate longer 
+        session lists at production servers. (pero)
+      </fix>
       <fix><bug>38131</bug>: WatchedResource doesn't work if app is outside 
host appbase webapps. 
         Patch provided by Peter Lynch (pero)
       </fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to