@Override
public synchronized void addMessage(ConnectionContext context, Message message) throws IOException {
int subscriberCount = subscriberMessages.size();
if (subscriberCount > 0) {
MessageId id = message.getMessageId();
StoreEntry messageEntry = messageContainer.place(id, message);
TopicSubAck tsa = new TopicSubAck();
tsa.setCount(subscriberCount);
tsa.setMessageEntry(messageEntry);
StoreEntry ackEntry = ackContainer.placeLast(tsa);
for (Iterator<TopicSubContainer> i = subscriberMessages.values().iterator(); i.hasNext();) {
TopicSubContainer container = i.next();
ConsumerMessageRef ref = new ConsumerMessageRef();
ref.setAckEntry(ackEntry);
ref.setMessageEntry(messageEntry);