[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