From 0bad7d4f0e12977dcba667a01f09bd8d65368cea Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Mon, 17 Aug 2026 13:25:19 -0400 Subject: [PATCH] fix NPE in comparator --- .../asie/enterprise/service/ShardDiscoveryService.java | 2 +- .../inteligr8/alfresco/asie/spi/ShardDiscoveryService.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/enterprise-module/src/main/java/com/inteligr8/alfresco/asie/enterprise/service/ShardDiscoveryService.java b/enterprise-module/src/main/java/com/inteligr8/alfresco/asie/enterprise/service/ShardDiscoveryService.java index cc0bd7e..60eeff4 100644 --- a/enterprise-module/src/main/java/com/inteligr8/alfresco/asie/enterprise/service/ShardDiscoveryService.java +++ b/enterprise-module/src/main/java/com/inteligr8/alfresco/asie/enterprise/service/ShardDiscoveryService.java @@ -264,7 +264,7 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh ShardInstanceState nodeShardState = ShardInstanceState.from(shardState); Pair pair = new Pair<>(node, nodeShardState); - if (comparator.compare(pair, shardNodeStates.get(shardId)) < 0) + if (!shardNodeStates.containsKey(shardId) || comparator.compare(pair, shardNodeStates.get(shardId)) < 0) shardNodeStates.put(shardId, pair); } } diff --git a/shared/src/main/java/com/inteligr8/alfresco/asie/spi/ShardDiscoveryService.java b/shared/src/main/java/com/inteligr8/alfresco/asie/spi/ShardDiscoveryService.java index e947a15..284a3af 100644 --- a/shared/src/main/java/com/inteligr8/alfresco/asie/spi/ShardDiscoveryService.java +++ b/shared/src/main/java/com/inteligr8/alfresco/asie/spi/ShardDiscoveryService.java @@ -125,7 +125,9 @@ public interface ShardDiscoveryService { public class ShardedNodeShardStateComparator implements Comparator> { @Override public int compare(Pair p1, Pair p2) { - return - Long.compare(p1.getSecond().getLastIndexedTxId(), p2.getSecond().getLastIndexedTxId()); + if (p1 == null) return 1; + else if (p2 == null) return -1; + else return - Long.compare(p1.getSecond().getLastIndexedTxId(), p2.getSecond().getLastIndexedTxId()); } }