This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new f906658a34 Remove use of Vector and associated changes.
f906658a34 is described below
commit f906658a34ce459078c2d6d26517c162751df9e2
Author: Mark Thomas <[email protected]>
AuthorDate: Fri Sep 9 15:44:50 2022 +0100
Remove use of Vector and associated changes.
Not for back-port as it changes the API for sub-classes (Lisat rather
than Vector).
---
.../catalina/manager/StatusManagerServlet.java | 59 +++++++----------
.../apache/catalina/manager/StatusTransformer.java | 75 ++++++++--------------
2 files changed, 49 insertions(+), 85 deletions(-)
diff --git a/java/org/apache/catalina/manager/StatusManagerServlet.java
b/java/org/apache/catalina/manager/StatusManagerServlet.java
index 2ba347bc16..d4ad1d0c01 100644
--- a/java/org/apache/catalina/manager/StatusManagerServlet.java
+++ b/java/org/apache/catalina/manager/StatusManagerServlet.java
@@ -16,15 +16,15 @@
*/
package org.apache.catalina.manager;
-
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.UnknownHostException;
-import java.util.Enumeration;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
import java.util.Set;
-import java.util.Vector;
import javax.management.MBeanServer;
import javax.management.MBeanServerNotification;
@@ -47,8 +47,7 @@ import org.apache.tomcat.util.res.StringManager;
*
* @author Remy Maucherat
*/
-public class StatusManagerServlet
- extends HttpServlet implements NotificationListener {
+public class StatusManagerServlet extends HttpServlet implements
NotificationListener {
private static final long serialVersionUID = 1L;
@@ -62,31 +61,29 @@ public class StatusManagerServlet
/**
* Vector of thread pools object names.
*/
- protected final Vector<ObjectName> threadPools = new Vector<>();
+ protected final List<ObjectName> threadPools =
Collections.synchronizedList(new ArrayList<>());
/**
* Vector of request processors object names.
*/
- protected final Vector<ObjectName> requestProcessors = new Vector<>();
+ protected final List<ObjectName> requestProcessors =
Collections.synchronizedList(new ArrayList<>());
/**
* Vector of global request processors object names.
*/
- protected final Vector<ObjectName> globalRequestProcessors = new
Vector<>();
+ protected final List<ObjectName> globalRequestProcessors =
Collections.synchronizedList(new ArrayList<>());
/**
* The string manager for this package.
*/
- protected static final StringManager sm =
- StringManager.getManager(Constants.Package);
+ protected static final StringManager sm =
StringManager.getManager(Constants.Package);
// --------------------------------------------------------- Public Methods
-
/**
* Initialize this servlet.
*/
@@ -105,7 +102,7 @@ public class StatusManagerServlet
Iterator<ObjectInstance> iterator = set.iterator();
while (iterator.hasNext()) {
ObjectInstance oi = iterator.next();
- threadPools.addElement(oi.getObjectName());
+ threadPools.add(oi.getObjectName());
}
// Query Global Request Processors
@@ -115,7 +112,7 @@ public class StatusManagerServlet
iterator = set.iterator();
while (iterator.hasNext()) {
ObjectInstance oi = iterator.next();
- globalRequestProcessors.addElement(oi.getObjectName());
+ globalRequestProcessors.add(oi.getObjectName());
}
// Query Request Processors
@@ -125,7 +122,7 @@ public class StatusManagerServlet
iterator = set.iterator();
while (iterator.hasNext()) {
ObjectInstance oi = iterator.next();
- requestProcessors.addElement(oi.getObjectName());
+ requestProcessors.add(oi.getObjectName());
}
// Register with MBean server
@@ -282,9 +279,7 @@ public class StatusManagerServlet
// use StatusTransformer to output status
StatusTransformer.writeVMState(writer,mode, args);
- Enumeration<ObjectName> enumeration = threadPools.elements();
- while (enumeration.hasMoreElements()) {
- ObjectName objectName = enumeration.nextElement();
+ for (ObjectName objectName : threadPools) {
String name = objectName.getKeyProperty("name");
args = new Object[19];
args[0] =
smClient.getString("htmlManagerServlet.connectorStateMaxThreads");
@@ -307,18 +302,14 @@ public class StatusManagerServlet
args[17] =
smClient.getString("htmlManagerServlet.connectorStateTableTitleRequest");
args[18] =
smClient.getString("htmlManagerServlet.connectorStateHint");
// use StatusTransformer to output status
- StatusTransformer.writeConnectorState
- (writer, objectName,
- name, mBeanServer, globalRequestProcessors,
- requestProcessors, mode, args);
+ StatusTransformer.writeConnectorState(writer, objectName,
name, mBeanServer, globalRequestProcessors,
+ requestProcessors, mode, args);
}
- if ((request.getPathInfo() != null)
- && (request.getPathInfo().equals("/all"))) {
+ if ((request.getPathInfo() != null) &&
(request.getPathInfo().equals("/all"))) {
// Note: Retrieving the full status is much slower
// use StatusTransformer to output status
- StatusTransformer.writeDetailedState
- (writer, mBeanServer, mode);
+ StatusTransformer.writeDetailedState(writer, mBeanServer,
mode);
}
} catch (Exception e) {
@@ -327,11 +318,10 @@ public class StatusManagerServlet
// use StatusTransformer to output status
StatusTransformer.writeFooter(writer, mode);
-
}
- // ------------------------------------------- NotificationListener Methods
+ // ------------------------------------------- NotificationListener Methods
@Override
public void handleNotification(Notification notification,
@@ -345,23 +335,22 @@ public class StatusManagerServlet
String type = objectName.getKeyProperty("type");
if (type != null) {
if (type.equals("ThreadPool")) {
- threadPools.addElement(objectName);
+ threadPools.add(objectName);
} else if (type.equals("GlobalRequestProcessor")) {
- globalRequestProcessors.addElement(objectName);
+ globalRequestProcessors.add(objectName);
} else if (type.equals("RequestProcessor")) {
- requestProcessors.addElement(objectName);
+ requestProcessors.add(objectName);
}
}
- } else if (notification.getType().equals
- (MBeanServerNotification.UNREGISTRATION_NOTIFICATION)) {
+ } else if
(notification.getType().equals(MBeanServerNotification.UNREGISTRATION_NOTIFICATION))
{
String type = objectName.getKeyProperty("type");
if (type != null) {
if (type.equals("ThreadPool")) {
- threadPools.removeElement(objectName);
+ threadPools.remove(objectName);
} else if (type.equals("GlobalRequestProcessor")) {
- globalRequestProcessors.removeElement(objectName);
+ globalRequestProcessors.remove(objectName);
} else if (type.equals("RequestProcessor")) {
- requestProcessors.removeElement(objectName);
+ requestProcessors.remove(objectName);
}
}
}
diff --git a/java/org/apache/catalina/manager/StatusTransformer.java
b/java/org/apache/catalina/manager/StatusTransformer.java
index d3942dc368..19de3516ea 100644
--- a/java/org/apache/catalina/manager/StatusTransformer.java
+++ b/java/org/apache/catalina/manager/StatusTransformer.java
@@ -22,12 +22,11 @@ import java.lang.management.MemoryPoolMXBean;
import java.lang.management.MemoryUsage;
import java.text.MessageFormat;
import java.util.Date;
-import java.util.Enumeration;
import java.util.Iterator;
+import java.util.List;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
-import java.util.Vector;
import javax.management.MBeanServer;
import javax.management.ObjectInstance;
@@ -46,12 +45,9 @@ import org.apache.tomcat.util.security.Escape;
*/
public class StatusTransformer {
-
// --------------------------------------------------------- Public Methods
-
- public static void setContentType(HttpServletResponse response,
- int mode) {
+ public static void setContentType(HttpServletResponse response, int mode) {
if (mode == 0){
response.setContentType("text/html;charset="+Constants.CHARSET);
} else if (mode == 1){
@@ -66,15 +62,12 @@ public class StatusTransformer {
* @param writer the PrintWriter to use
* @param args Path prefix for URLs
* @param mode - 0 = HTML header, 1 = XML declaration
- *
*/
public static void writeHeader(PrintWriter writer, Object[] args, int
mode) {
- if (mode == 0){
+ if (mode == 0) {
// HTML Header Section
- writer.print(MessageFormat.format(
- Constants.HTML_HEADER_SECTION, args
- ));
- } else if (mode == 1){
+ writer.print(MessageFormat.format(Constants.HTML_HEADER_SECTION,
args));
+ } else if (mode == 1) {
writer.write(Constants.XML_DECLARATION);
writer.print(MessageFormat.format
(Constants.XML_STYLE, args));
@@ -93,8 +86,7 @@ public class StatusTransformer {
*/
public static void writeBody(PrintWriter writer, Object[] args, int mode) {
if (mode == 0){
- writer.print(MessageFormat.format
- (Constants.BODY_HEADER_SECTION, args));
+ writer.print(MessageFormat.format(Constants.BODY_HEADER_SECTION,
args));
}
}
@@ -106,26 +98,22 @@ public class StatusTransformer {
* @param args What to write
* @param mode 0 means write
*/
- public static void writeManager(PrintWriter writer, Object[] args,
- int mode) {
- if (mode == 0){
+ public static void writeManager(PrintWriter writer, Object[] args, int
mode) {
+ if (mode == 0) {
writer.print(MessageFormat.format(Constants.MANAGER_SECTION,
args));
}
}
- public static void writePageHeading(PrintWriter writer, Object[] args,
- int mode) {
- if (mode == 0){
- writer.print(MessageFormat.format
- (Constants.SERVER_HEADER_SECTION, args));
+ public static void writePageHeading(PrintWriter writer, Object[] args, int
mode) {
+ if (mode == 0) {
+ writer.print(MessageFormat.format(Constants.SERVER_HEADER_SECTION,
args));
}
}
- public static void writeServerInfo(PrintWriter writer, Object[] args,
- int mode){
- if (mode == 0){
+ public static void writeServerInfo(PrintWriter writer, Object[] args, int
mode){
+ if (mode == 0) {
writer.print(MessageFormat.format(Constants.SERVER_ROW_SECTION,
args));
}
}
@@ -240,8 +228,8 @@ public class StatusTransformer {
*/
public static void writeConnectorState(PrintWriter writer,
ObjectName tpName, String name, MBeanServer mBeanServer,
- Vector<ObjectName> globalRequestProcessors,
- Vector<ObjectName> requestProcessors, int mode, Object[] args)
throws Exception {
+ List<ObjectName> globalRequestProcessors,
+ List<ObjectName> requestProcessors, int mode, Object[] args)
throws Exception {
if (mode == 0) {
writer.print("<h1>");
@@ -269,10 +257,8 @@ public class StatusTransformer {
ObjectName grpName = null;
- Enumeration<ObjectName> enumeration =
globalRequestProcessors.elements();
- // Find the HTTP/1.1 RequestGroupInfo - BZ 65404
- while (enumeration.hasMoreElements()) {
- ObjectName objectName = enumeration.nextElement();
+ for (ObjectName objectName : globalRequestProcessors) {
+ // Find the HTTP/1.1 RequestGroupInfo - BZ 65404
if (name.equals(objectName.getKeyProperty("name")) &&
objectName.getKeyProperty("Upgrade") == null) {
grpName = objectName;
}
@@ -284,13 +270,11 @@ public class StatusTransformer {
writer.print( args[4] );
writer.print(' ');
- writer.print(formatTime(mBeanServer.getAttribute
- (grpName, "maxTime"), false));
+ writer.print(formatTime(mBeanServer.getAttribute(grpName,
"maxTime"), false));
writer.print(' ');
writer.print(args[5]);
writer.print(' ');
- writer.print(formatTime(mBeanServer.getAttribute
- (grpName, "processingTime"), true));
+ writer.print(formatTime(mBeanServer.getAttribute(grpName,
"processingTime"), true));
writer.print(' ');
writer.print(args[6]);
writer.print(' ');
@@ -302,20 +286,16 @@ public class StatusTransformer {
writer.print(' ');
writer.print(args[8]);
writer.print(' ');
- writer.print(formatSize(mBeanServer.getAttribute
- (grpName, "bytesReceived"), true));
+ writer.print(formatSize(mBeanServer.getAttribute(grpName,
"bytesReceived"), true));
writer.print(' ');
writer.print(args[9]);
writer.print(' ');
- writer.print(formatSize(mBeanServer.getAttribute
- (grpName, "bytesSent"), true));
+ writer.print(formatSize(mBeanServer.getAttribute(grpName,
"bytesSent"), true));
writer.print("</p>");
writer.print("<table border=\"0\"><tr><th>"+ args[10] +
"</th><th>" + args[11] + "</th><th>" + args[12] +"</th><th>" + args[13]
+"</th><th>" + args[14] + "</th><th>" + args[15] + "</th><th>" + args[16] +
"</th><th>" + args[17] + "</th></tr>");
- enumeration = requestProcessors.elements();
- while (enumeration.hasMoreElements()) {
- ObjectName objectName = enumeration.nextElement();
+ for (ObjectName objectName : requestProcessors) {
if (name.equals(objectName.getKeyProperty("worker"))) {
writer.print("<tr>");
writeProcessorState(writer, objectName, mBeanServer, mode);
@@ -339,10 +319,8 @@ public class StatusTransformer {
ObjectName grpName = null;
- Enumeration<ObjectName> enumeration =
globalRequestProcessors.elements();
- // Find the HTTP/1.1 RequestGroupInfo - BZ 65404
- while (enumeration.hasMoreElements()) {
- ObjectName objectName = enumeration.nextElement();
+ for (ObjectName objectName : globalRequestProcessors) {
+ // Find the HTTP/1.1 RequestGroupInfo - BZ 65404
if (name.equals(objectName.getKeyProperty("name")) &&
objectName.getKeyProperty("Upgrade") == null) {
grpName = objectName;
}
@@ -360,9 +338,7 @@ public class StatusTransformer {
writer.write(" />");
writer.write("<workers>");
- enumeration = requestProcessors.elements();
- while (enumeration.hasMoreElements()) {
- ObjectName objectName = enumeration.nextElement();
+ for (ObjectName objectName : requestProcessors) {
if (name.equals(objectName.getKeyProperty("worker"))) {
writeProcessorState(writer, objectName, mBeanServer,
mode);
}
@@ -372,7 +348,6 @@ public class StatusTransformer {
writer.write("</connector>");
}
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]