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 <ma...@apache.org> 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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org