[jboss-cvs] JBoss Messaging SVN: r3720 - in branches/Branch_JBossMessaging_1_4_0_SP3_CP: tests/src/org/jboss/test/messaging/core and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Feb 14 17:02:11 EST 2008
Author: clebert.suconic at jboss.com
Date: 2008-02-14 17:02:11 -0500 (Thu, 14 Feb 2008)
New Revision: 3720
Modified:
branches/Branch_JBossMessaging_1_4_0_SP3_CP/src/main/org/jboss/messaging/core/impl/IDManager.java
branches/Branch_JBossMessaging_1_4_0_SP3_CP/tests/src/org/jboss/test/messaging/core/IdManagerTest.java
Log:
http://jira.jboss.org/jira/browse/JBMESSAGING-1233 - Scalling up IDManager (Using blocks)
Modified: branches/Branch_JBossMessaging_1_4_0_SP3_CP/src/main/org/jboss/messaging/core/impl/IDManager.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP/src/main/org/jboss/messaging/core/impl/IDManager.java 2008-02-13 21:58:30 UTC (rev 3719)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP/src/main/org/jboss/messaging/core/impl/IDManager.java 2008-02-14 22:02:11 UTC (rev 3720)
@@ -120,7 +120,12 @@
public synchronized long getID() throws Exception
{
- return getIDBlock(1).getLow();
+ if (low == high)
+ {
+ getNextBigBlock();
+ }
+
+ return low++;
}
public String toString()
Modified: branches/Branch_JBossMessaging_1_4_0_SP3_CP/tests/src/org/jboss/test/messaging/core/IdManagerTest.java
===================================================================
--- branches/Branch_JBossMessaging_1_4_0_SP3_CP/tests/src/org/jboss/test/messaging/core/IdManagerTest.java 2008-02-13 21:58:30 UTC (rev 3719)
+++ branches/Branch_JBossMessaging_1_4_0_SP3_CP/tests/src/org/jboss/test/messaging/core/IdManagerTest.java 2008-02-14 22:02:11 UTC (rev 3720)
@@ -124,7 +124,29 @@
idm.stop();
}
+
+ public void testMixNextAndBlocks() throws Exception
+ {
+ IDManager idm = new IDManager("test_counter3", 100, pm);
+ idm.start();
+ for (long i=0;i<50;i++)
+ {
+ assertEquals(i, idm.getID());
+ }
+
+ IDBlock block = idm.getIDBlock(100);
+ assertEquals(100, block.getLow());
+ assertEquals(199, block.getHigh());
+
+ assertEquals(200, idm.getID());
+
+ for (long i=201;i<1000;i++)
+ {
+ assertEquals(i, idm.getID());
+ }
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the jboss-cvs-commits
mailing list