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

Reply via email to