// remove this subscriber from the delivery pointers data structure
ByteString topic = subscriber.getTopic();
SortedMap<Long, Set<ActiveSubscriberState>> deliveryPtrs = perTopicDeliveryPtrs.get(topic);
if (deliveryPtrs == null && !isAbsenceOk) {
throw new UnexpectedError("No delivery pointers found while disconnecting " + "channel for topic:" + topic);
}
if(null == deliveryPtrs) {
return;
}
if (!MapMethods.removeFromMultiMap(deliveryPtrs, seqId, subscriber) && !isAbsenceOk) {
throw new UnexpectedError("Could not find subscriber:" + subscriber + " at the expected delivery pointer");
}
if (pruneTopic && deliveryPtrs.isEmpty()) {
perTopicDeliveryPtrs.remove(topic);
}