From d80767c5d86dfb531f8ab0f4b6201ff6ad2f5403 Mon Sep 17 00:00:00 2001 From: "pallav.garg" Date: Tue, 3 Nov 2026 13:16:42 -0800 Subject: [PATCH 1/2] Remove grantless retained consumers --- src/cluster/ClusterMap.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cluster/ClusterMap.java b/src/cluster/ClusterMap.java index e0adf41..d6432fa 100644 --- a/src/cluster/ClusterMap.java +++ b/src/cluster/ClusterMap.java @@ -254,8 +254,7 @@ public ClusterMap update(Messages.ClusterMessage msg) { continue; } - // Ensure the consumer is copied even if it has no grants. Note that snapshot will remove - // old consumers without grants. + // Copy consumers before merging their grants; prune empty retained consumers below. if (!cluster.consumers.containsKey(cid)) { cluster.consumers.put( cid, @@ -283,6 +282,9 @@ public ClusterMap update(Messages.ClusterMessage msg) { } } + // Retained consumers are only needed while their old grants survive. + cluster.consumers.values().removeIf(info -> info.isRetained() && info.grants().isEmpty()); + return cluster; } throw new IllegalArgumentException("Unsupported message: " + msg); From c67bcac2e006ca4cedfcf5ee25a2a464a0b38671 Mon Sep 17 00:00:00 2001 From: "pallav.garg" Date: Tue, 3 Nov 2026 15:40:13 -0800 Subject: [PATCH 2/2] Bump splitter to v1.6.4 --- go.mod | 6 +++--- go.sum | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2a9a25b..397287d 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,10 @@ module go.atoms.co/splitter/javaclient -go 1.26.2 +go 1.26.10 -require go.atoms.co/splitter v1.4.0 +require go.atoms.co/splitter v1.6.4 require ( go.atoms.co/lib/net/location v1.0.3 - go.atoms.co/lib/net/session v1.0.4 + go.atoms.co/lib/net/session v1.0.5 ) diff --git a/go.sum b/go.sum index 00263dc..2bf8155 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,14 @@ go.atoms.co/lib v1.2.1 h1:IDoCx6kqg3NJ9gM1aGYqtI4D82rFT1Hqg3Mi+l/6KKE= +go.atoms.co/lib v1.3.0 h1:TJ7415DqsCyOxn1v7itO+OGIGo5JUrk2phwlOe4OIQA= go.atoms.co/lib/net/location v1.0.3 h1:gp0e/z4Row29+k1J5mpVG+H6eSeN2stpIEzwzYifYmM= go.atoms.co/lib/net/location v1.0.3/go.mod h1:OM5jIBZ26kcTk+UlOol41jkFUmZhiKLBip+s6cTz2LY= go.atoms.co/lib/net/session v1.0.4 h1:W/8xtxvRJfom0crfjsC8aEXH5bt3pJOFTUeHPElvrWw= go.atoms.co/lib/net/session v1.0.4/go.mod h1:g30mud6ZtV8/d2rBz6vO/TTafHAMamLrOeb+7qxEq70= +go.atoms.co/lib/net/session v1.0.5 h1:Yd+5loV8S5LlG+X5l+YGpV3D0mc+6NDkP1goX0I3NDo= +go.atoms.co/lib/net/session v1.0.5/go.mod h1:g30mud6ZtV8/d2rBz6vO/TTafHAMamLrOeb+7qxEq70= go.atoms.co/splitter v1.3.0 h1:zDNJ7+4cQgluNuofsgu7g+IosfUwyMPJw/smbbRb178= go.atoms.co/splitter v1.3.0/go.mod h1:SCbcuPsCFoaqe8ZWan0TG1BsfYwbVia3pg3dijjt7Bw= go.atoms.co/splitter v1.4.0 h1:/5tX17xlWZAkkdTvqU2AyBbD8I5at1rtH2jR1yFR/oM= go.atoms.co/splitter v1.4.0/go.mod h1:SCbcuPsCFoaqe8ZWan0TG1BsfYwbVia3pg3dijjt7Bw= +go.atoms.co/splitter v1.6.4 h1:h0tp8dBJo0FLmRKOc/+YMBOqDeEYvgrJuE1BQDQSU8Y= +go.atoms.co/splitter v1.6.4/go.mod h1:124WHH4w7/aw9+Qal4bDg5K5NaxWNNmVxGer/iJYM2I=