Author: pero
Date: Sat Jan 26 11:52:28 2008
New Revision: 615478
URL: http://svn.apache.org/viewvc?rev=615478view=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=615478r1=615477r2=615478view=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=612988view=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=615478r1=615477r2=615478view=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=615478r1=615477r2=615478view=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 =