public TopicReferenceStore createTopicReferenceStore(ActiveMQTopic destination) throws IOException {
TopicReferenceStore rc = (TopicReferenceStore)topics.get(destination);
if (rc == null) {
Store store = getStore();
MapContainer messageContainer = getMapReferenceContainer(destination.getPhysicalName(), "topic-data");
MapContainer subsContainer = getSubsMapContainer(destination.getPhysicalName() + "-Subscriptions", "blob");
ListContainer<TopicSubAck> ackContainer = store.getListContainer(destination.getPhysicalName(), "topic-acks");
ackContainer.setMarshaller(new TopicSubAckMarshaller());
rc = new KahaTopicReferenceStore(store, this, messageContainer, ackContainer, subsContainer,
destination);
messageStores.put(destination, rc);