diff --git a/aeron-cluster/src/main/java/io/aeron/cluster/client/AeronCluster.java b/aeron-cluster/src/main/java/io/aeron/cluster/client/AeronCluster.java index 69ccaba2e1..f10a323cb4 100644 --- a/aeron-cluster/src/main/java/io/aeron/cluster/client/AeronCluster.java +++ b/aeron-cluster/src/main/java/io/aeron/cluster/client/AeronCluster.java @@ -1705,19 +1705,17 @@ private void updateMembers() { ingressPublication = leader.publication; leader.publication = null; - CloseHelper.closeAll(memberByIdMap.values()); - memberByIdMap = parseIngressEndpoints(egressPoller.detail()); } - else - { - CloseHelper.closeAll(memberByIdMap.values()); - memberByIdMap = parseIngressEndpoints(egressPoller.detail()); + CloseHelper.closeAll(memberByIdMap.values()); + memberByIdMap = parseIngressEndpoints(egressPoller.detail()); + + if (ingressPublication == null) + { final MemberIngress member = memberByIdMap.get(leaderMemberId); final ChannelUri channelUri = ChannelUri.parse(ctx.ingressChannel()); channelUri.put(CommonContext.ENDPOINT_PARAM_NAME, member.endpoint); - member.publication = addIngressPublication(ctx, channelUri.toString(), ctx.ingressStreamId()); - ingressPublication = member.publication; + ingressPublication = addIngressPublication(ctx, channelUri.toString(), ctx.ingressStreamId()); } step(1);