You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/09/21 15:06:48 UTC
[tomcat] branch 9.0.x updated: Refactor. Replace custom Comparators with Comparator.comparingLong(...)
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new 5533138a0c Refactor. Replace custom Comparators with Comparator.comparingLong(...)
5533138a0c is described below
commit 5533138a0c781065d57c240270d0d6c030fc80f0
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 273acd2813..84e2f54417 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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org