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() {