fix ContainerElementKey comparison
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ContainerElementKey.java b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ContainerElementKey.java
index 2d7102b..ed45601 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ContainerElementKey.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/ContainerElementKey.java
@@ -16,6 +16,10 @@
*/
package org.apache.bval.jsr.metadata;
+import static java.util.Comparator.comparing;
+import static java.util.Comparator.naturalOrder;
+import static java.util.Comparator.nullsFirst;
+
import java.lang.reflect.AnnotatedParameterizedType;
import java.lang.reflect.AnnotatedType;
import java.lang.reflect.ParameterizedType;
@@ -46,6 +50,9 @@
import org.apache.bval.util.reflection.TypeUtils;
public class ContainerElementKey implements Comparable<ContainerElementKey> {
+ public static final Comparator<ContainerElementKey> COMPARATOR =
+ nullsFirst(comparing(ContainerElementKey::containerClassName)
+ .thenComparing(ContainerElementKey::getTypeArgumentIndex, nullsFirst(naturalOrder())));
private static Logger log = Logger.getLogger(ContainerElementKey.class.getName());
@@ -161,10 +168,7 @@
@Override
public int compareTo(ContainerElementKey o) {
- return Comparator
- .nullsFirst(Comparator.comparing(ContainerElementKey::containerClassName)
- .thenComparing(Comparator.nullsFirst(Comparator.comparing(ContainerElementKey::getTypeArgumentIndex))))
- .compare(this, o);
+ return COMPARATOR.compare(this, o);
}
public Set<ContainerElementKey> getAssignableKeys() {