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

gnodet pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8aa4cabaccfc5224fc4fe6b9bae125d403d838b0
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Tue May 14 14:44:42 2024 +0200

    Reuse the existing comparator instead of storing it
---
 .../processor/resequencer/ResequencerEngine.java     |  8 ++++----
 .../apache/camel/processor/resequencer/Sequence.java | 20 +++++++++-----------
 2 files changed, 13 insertions(+), 15 deletions(-)

diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
index fc8272ce697..dc7bed62ec9 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
@@ -187,8 +187,8 @@ public class ResequencerEngine<E> {
         Element<E> element = new Element<>(o);
 
         // validate the exchange has no problem
-        if (!sequence.comparator().isValid(element)) {
-            throw new IllegalArgumentException("Element cannot be used in 
comparator: " + sequence.comparator());
+        if (!sequence.seqComparator().isValid(element)) {
+            throw new IllegalArgumentException("Element cannot be used in 
comparator: " + sequence.seqComparator());
         }
 
         // validate the exchange shouldn't be 'rejected' (if applicable)
@@ -275,7 +275,7 @@ public class ResequencerEngine<E> {
         if (lastDelivered == null) {
             return false;
         }
-        if (sequence.comparator().successor(element, lastDelivered)) {
+        if (sequence.seqComparator().successor(element, lastDelivered)) {
             return true;
         }
         return false;
@@ -291,7 +291,7 @@ public class ResequencerEngine<E> {
         if (lastDelivered == null) {
             return false;
         }
-        if (sequence.comparator().compare(element, lastDelivered) < 0) {
+        if (sequence.seqComparator().compare(element, lastDelivered) < 0) {
             return true;
         }
         return false;
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Sequence.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Sequence.java
index 11b2d46b46f..f16c509536e 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Sequence.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/resequencer/Sequence.java
@@ -17,6 +17,7 @@
 package org.apache.camel.processor.resequencer;
 
 import java.io.Serial;
+import java.util.Objects;
 import java.util.TreeSet;
 
 /**
@@ -28,16 +29,13 @@ public class Sequence<E> extends TreeSet<E> {
 
     private static final @Serial long serialVersionUID = 5647393631147741711L;
 
-    private final SequenceElementComparator<E> comparator;
-
     /**
      * Creates a new {@link Sequence} instance.
      *
      * @param comparator a strategy for comparing elements of this sequence.
      */
     public Sequence(SequenceElementComparator<E> comparator) {
-        super(comparator);
-        this.comparator = comparator;
+        super(Objects.requireNonNull(comparator));
     }
 
     /**
@@ -52,7 +50,7 @@ public class Sequence<E> extends TreeSet<E> {
         if (elem == null) {
             return null;
         }
-        if (comparator.predecessor(elem, e)) {
+        if (seqComparator().predecessor(elem, e)) {
             return elem;
         }
         return null;
@@ -70,7 +68,7 @@ public class Sequence<E> extends TreeSet<E> {
         if (elem == null) {
             return null;
         }
-        if (comparator.successor(elem, e)) {
+        if (seqComparator().successor(elem, e)) {
             return elem;
         }
         return null;
@@ -81,9 +79,9 @@ public class Sequence<E> extends TreeSet<E> {
      *
      * @return this sequence's comparator.
      */
-    @Override
-    public SequenceElementComparator<E> comparator() {
-        return comparator;
+    @SuppressWarnings("unchecked")
+    public SequenceElementComparator<E> seqComparator() {
+        return Objects.requireNonNull((SequenceElementComparator<E>) 
super.comparator());
     }
 
     /**
@@ -102,7 +100,7 @@ public class Sequence<E> extends TreeSet<E> {
             if (found) {
                 return current;
             }
-            if (comparator.compare(e, current) == 0) {
+            if (seqComparator().compare(e, current) == 0) {
                 found = true;
             }
         }
@@ -122,7 +120,7 @@ public class Sequence<E> extends TreeSet<E> {
     public E lower(E e) {
         E last = null;
         for (E current : this) {
-            if (comparator.compare(e, current) == 0) {
+            if (seqComparator().compare(e, current) == 0) {
                 return last;
             }
             last = current;

Reply via email to