From f9f64a441b2ceaf32b37c49c85d072de3aba5940 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Mon, 6 Apr 2020 13:22:58 +0000
Subject: [PATCH] Ratchet: Fix sorting for sessions on /debug

---
 .../java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/router/java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java b/router/java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java
index 92f6658fe8..3e4347d267 100644
--- a/router/java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java
+++ b/router/java/src/net/i2p/router/crypto/ratchet/RatchetSKM.java
@@ -737,11 +737,13 @@ public class RatchetSKM extends SessionKeyManager implements SessionTagListener
         int total = 0;
         int totalSets = 0;
         long now = _context.clock().now();
-        Set<RatchetTagSet> sets = new TreeSet<RatchetTagSet>(new RatchetTagSetComparator());
+        Comparator<RatchetTagSet> comp = new RatchetTagSetComparator();
+        List<RatchetTagSet> sets = new ArrayList<RatchetTagSet>();
         for (Map.Entry<PublicKey, Set<RatchetTagSet>> e : inboundSets.entrySet()) {
             PublicKey skey = e.getKey();
             sets.clear();
             sets.addAll(e.getValue());
+            Collections.sort(sets, comp);
             totalSets += sets.size();
             buf.append("<tr><td><b>Public key:</b> ").append(skey.toBase64()).append("</td>" +
                        "<td><b>Sets:</b> ").append(sets.size()).append("</td></tr>" +
@@ -779,6 +781,7 @@ public class RatchetSKM extends SessionKeyManager implements SessionTagListener
         for (OutboundSession sess : outbound) {
             sets.clear();
             sets.addAll(sess.getTagSets());
+            Collections.sort(sets, comp);
             totalSets += sets.size();
             buf.append("<tr class=\"debug_outboundtarget\"><td><div class=\"debug_targetinfo\"><b>Target public key:</b> ").append(toString(sess.getTarget())).append("<br>" +
                        "<b>Established:</b> ").append(DataHelper.formatDuration2(now - sess.getEstablishedDate())).append(" ago<br>" +
@@ -828,7 +831,7 @@ public class RatchetSKM extends SessionKeyManager implements SessionTagListener
      */
     private static class RatchetTagSetComparator implements Comparator<RatchetTagSet>, Serializable {
          public int compare(RatchetTagSet l, RatchetTagSet r) {
-             return l.getID() - r.getID();
+             return l.getDebugID() - r.getDebugID();
         }
     }
 
-- 
GitLab