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 2006/01/10 17:33:32 UTC
svn commit: r367676 - in
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region:
QueueSubscription.java group/MessageGroupHashBucket.java
Author: chirino
Date: Tue Jan 10 08:33:13 2006
New Revision: 367676
URL: http://svn.apache.org/viewcvs?rev=367676&view=rev
Log:
- make the group sequences 0 based to match producer message sequences which are also 0 based
- fixed bucket hashing method to handle cases where the group id hashes to a negative number.
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/QueueSubscription.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/group/MessageGroupHashBucket.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/QueueSubscription.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/QueueSubscription.java?rev=367676&r1=367675&r2=367676&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/QueueSubscription.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/QueueSubscription.java Tue Jan 10 08:33:13 2006
@@ -81,7 +81,7 @@
MessageGroupMap messageGroupOwners = ((Queue)node.getRegionDestination()).getMessageGroupOwners();
// If we can own the first, then no-one else should own the rest.
- if( sequence==1 ) {
+ if( sequence==0 ) {
if( node.lock(this) ) {
messageGroupOwners.put(groupId, info.getConsumerId());
return true;
@@ -107,7 +107,7 @@
if( groupOwner.equals(info.getConsumerId()) ) {
// A group sequence < 1 is an end of group signal.
- if ( sequence < 1 ) {
+ if ( sequence < 0 ) {
messageGroupOwners.removeGroup(groupId);
}
return true;
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/group/MessageGroupHashBucket.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/group/MessageGroupHashBucket.java?rev=367676&r1=367675&r2=367676&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/group/MessageGroupHashBucket.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/group/MessageGroupHashBucket.java Tue Jan 10 08:33:13 2006
@@ -102,6 +102,10 @@
}
protected int getBucketNumber(String groupId) {
- return groupId.hashCode() % bucketCount;
+ int bucket = groupId.hashCode() % bucketCount;
+ // bucket could be negative
+ if( bucket < 0 )
+ bucket *= -1;
+ return bucket;
}
}