This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 10.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/10.0.x by this push:
     new 85581e302b Refactor. Replace custom Comparators with 
Comparator.comparingLong(...)
85581e302b is described below

commit 85581e302bda90e0b89ca56a3e8855e2f8a932e9
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Sep 21 15:49:50 2022 +0100

    Refactor. Replace custom Comparators with Comparator.comparingLong(...)
    
    No functional change.
---
 .../catalina/tribes/membership/Membership.java     | 21 +---------------
 java/org/apache/catalina/webresources/Cache.java   | 21 +---------------
 .../tomcat/websocket/server/WsWriteTimeout.java    | 29 +++-------------------
 3 files changed, 6 insertions(+), 65 deletions(-)

diff --git a/java/org/apache/catalina/tribes/membership/Membership.java 
b/java/org/apache/catalina/tribes/membership/Membership.java
index 234bf47b3d..6b0f0e6b62 100644
--- a/java/org/apache/catalina/tribes/membership/Membership.java
+++ b/java/org/apache/catalina/tribes/membership/Membership.java
@@ -16,7 +16,6 @@
  */
 package org.apache.catalina.tribes.membership;
 
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
@@ -93,7 +92,7 @@ public class Membership implements Cloneable {
      * @param includeLocal - TBA
      */
     public Membership(Member local, boolean includeLocal) {
-        this(local, new MemberComparator(), includeLocal);
+        this(local, 
Comparator.comparingLong(Member::getMemberAliveTime).reversed(), includeLocal);
     }
 
     public Membership(Member local) {
@@ -290,24 +289,6 @@ public class Membership implements Cloneable {
 
     // --------------------------------------------- Inner Class
 
-    private static class MemberComparator implements Comparator<Member>, 
Serializable {
-
-        private static final long serialVersionUID = 1L;
-
-        @Override
-        public int compare(Member m1, Member m2) {
-            // Longer alive time, means sort first
-            long result = m2.getMemberAliveTime() - m1.getMemberAliveTime();
-            if (result < 0) {
-                return -1;
-            } else if (result == 0) {
-                return 0;
-            } else {
-                return 1;
-            }
-        }
-    }
-
     /**
      * Inner class that represents a member entry
      */
diff --git a/java/org/apache/catalina/webresources/Cache.java 
b/java/org/apache/catalina/webresources/Cache.java
index bf762d43b3..287134e310 100644
--- a/java/org/apache/catalina/webresources/Cache.java
+++ b/java/org/apache/catalina/webresources/Cache.java
@@ -208,7 +208,7 @@ public class Cache {
         // used first. This is a background process so we can afford to take 
the
         // time to order the elements first
         TreeSet<CachedResource> orderedResources =
-                new TreeSet<>(new EvictionOrder());
+                new 
TreeSet<>(Comparator.comparingLong(CachedResource::getNextCheck).reversed());
         orderedResources.addAll(resourceCache.values());
 
         Iterator<CachedResource> iter = orderedResources.iterator();
@@ -342,23 +342,4 @@ public class Cache {
     public long getSize() {
         return size.get() / 1024;
     }
-
-    private static class EvictionOrder implements Comparator<CachedResource> {
-
-        @Override
-        public int compare(CachedResource cr1, CachedResource cr2) {
-            long nc1 = cr1.getNextCheck();
-            long nc2 = cr2.getNextCheck();
-
-            // Oldest resource should be first (so iterator goes from oldest to
-            // youngest.
-            if (nc1 == nc2) {
-                return 0;
-            } else if (nc1 > nc2) {
-                return -1;
-            } else {
-                return 1;
-            }
-        }
-    }
 }
diff --git a/java/org/apache/tomcat/websocket/server/WsWriteTimeout.java 
b/java/org/apache/tomcat/websocket/server/WsWriteTimeout.java
index 7eb6c4fbae..eddaceac82 100644
--- a/java/org/apache/tomcat/websocket/server/WsWriteTimeout.java
+++ b/java/org/apache/tomcat/websocket/server/WsWriteTimeout.java
@@ -32,8 +32,11 @@ import org.apache.tomcat.websocket.BackgroundProcessManager;
  */
 public class WsWriteTimeout implements BackgroundProcess {
 
+    /**
+     * Note: The comparator imposes orderings that are inconsistent with equals
+     */
     private final Set<WsRemoteEndpointImplServer> endpoints =
-            new ConcurrentSkipListSet<>(new EndpointComparator());
+            new 
ConcurrentSkipListSet<>(Comparator.comparingLong(WsRemoteEndpointImplServer::getTimeoutExpiry));
     private final AtomicInteger count = new AtomicInteger(0);
     private int backgroundProcessCount = 0;
     private volatile int processPeriod = 1;
@@ -101,28 +104,4 @@ public class WsWriteTimeout implements BackgroundProcess {
             }
         }
     }
-
-
-    /**
-     * Note: this comparator imposes orderings that are inconsistent with 
equals
-     */
-    private static class EndpointComparator implements
-            Comparator<WsRemoteEndpointImplServer> {
-
-        @Override
-        public int compare(WsRemoteEndpointImplServer o1,
-                WsRemoteEndpointImplServer o2) {
-
-            long t1 = o1.getTimeoutExpiry();
-            long t2 = o2.getTimeoutExpiry();
-
-            if (t1 < t2) {
-                return -1;
-            } else if (t1 == t2) {
-                return 0;
-            } else {
-                return 1;
-            }
-        }
-    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to