You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2007/09/07 00:11:43 UTC

svn commit: r573395 - in /activemq/trunk/activemq-core/src/main/java/org/apache/activemq: kaha/ContainerId.java store/kahadaptor/KahaTopicReferenceStore.java

Author: chirino
Date: Thu Sep  6 15:11:43 2007
New Revision: 573395

URL: http://svn.apache.org/viewvc?rev=573395&view=rev
Log:
Fixed ContainerId so that it also uses the container name when it compares equality. Switch back to using a single index file
for the topic susbcriptions lists.


Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/ContainerId.java
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/ContainerId.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/ContainerId.java?rev=573395&r1=573394&r2=573395&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/ContainerId.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/ContainerId.java Thu Sep  6 15:11:43 2007
@@ -68,16 +68,15 @@
     }
 
     public int hashCode() {
-        return key.hashCode();
+        return key.hashCode() ^ dataContainerName.hashCode();
     }
 
     public boolean equals(Object obj) {
-        boolean result = false;
-        if (obj != null && obj instanceof ContainerId) {
-            ContainerId other = (ContainerId)obj;
-            result = other.key.equals(this.key);
+        if (obj == null || obj.getClass() != ContainerId.class) {
+            return false;
         }
-        return result;
+        ContainerId other = (ContainerId)obj;
+        return other.key.equals(this.key) && other.dataContainerName.equals(this.dataContainerName);
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java?rev=573395&r1=573394&r2=573395&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java Thu Sep  6 15:11:43 2007
@@ -50,9 +50,9 @@
         this.ackContainer = ackContainer;
         subscriberContainer = subsContainer;
         // load all the Ack containers
-        for (Iterator<String> i = subscriberContainer.keySet().iterator(); i.hasNext();) {
-            String key = i.next();
-            addSubscriberMessageContainer(key);
+        for (Iterator<SubscriptionInfo> i = subscriberContainer.values().iterator(); i.hasNext();) {
+            SubscriptionInfo info = i.next();
+            addSubscriberMessageContainer(info.getClientId(), info.getSubscriptionName());
         }
     }
 
@@ -108,12 +108,12 @@
         }
     }
 
-    protected ListContainer addSubscriberMessageContainer(String key) throws IOException {
-        ListContainer container = store.getListContainer(key, "TSR-" + destination);
+    protected ListContainer addSubscriberMessageContainer(String clientId, String subscriptionName) throws IOException {
+        ListContainer container = store.getListContainer(clientId+":"+subscriptionName+":"+destination.getQualifiedName(), "topic-subs-references");
         Marshaller marshaller = new ConsumerMessageRefMarshaller();
         container.setMarshaller(marshaller);
         TopicSubContainer tsc = new TopicSubContainer(container);
-        subscriberMessages.put(key, tsc);
+        subscriberMessages.put(getSubscriptionKey(clientId, subscriptionName), tsc);
         return container;
     }
 
@@ -156,7 +156,7 @@
             adapter.addSubscriberState(info);
         }
         // add the subscriber
-        ListContainer container = addSubscriberMessageContainer(key);
+        ListContainer container = addSubscriberMessageContainer(info.getClientId(), info.getSubscriptionName());
         if (retroactive) {
             /*
              * for(StoreEntry