[jboss-cvs] JBoss Messaging SVN: r4273 - in trunk: tests/src/org/jboss/messaging/tests/unit/core/journal/impl and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed May 21 13:42:55 EDT 2008


Author: clebert.suconic at jboss.com
Date: 2008-05-21 13:42:55 -0400 (Wed, 21 May 2008)
New Revision: 4273

Modified:
   trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestUnit.java
Log:
Fixing journal tests...
(Adds, updates, deletes and close are asynchronous calls. We need to wait them finish before doing assertions)

Modified: trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java	2008-05-21 15:35:56 UTC (rev 4272)
+++ trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java	2008-05-21 17:42:55 UTC (rev 4273)
@@ -1214,17 +1214,21 @@
          callback.waitCompletion();
       }
       
-      final CountDownLatch latch = new CountDownLatch(1);
-      
-      this.closingExecutor.execute(new Runnable(){
-         public void run()
+      if (!closingExecutor.isShutdown())
+      {
+         // Send something to the closingExecutor, just to make sure we went until its end
+         final CountDownLatch latch = new CountDownLatch(1);
+
+         this.closingExecutor.execute(new Runnable()
          {
-            latch.countDown();
-         }
-      });
-      
-      // just to make sure the closing thread is empty
-      latch.await();
+            public void run()
+            {
+               latch.countDown();
+            }
+         });
+         
+         latch.await();
+      }
    }
 
    // TestableJournal implementation --------------------------------------------------------------
@@ -1321,7 +1325,10 @@
 		stopReclaimer();
 		
 		closingExecutor.shutdown();
-		closingExecutor.awaitTermination(120, TimeUnit.SECONDS);
+		if (!closingExecutor.awaitTermination(120, TimeUnit.SECONDS))
+		{
+		   throw new IllegalStateException("Time out waiting for closing executor to finish");
+		}
 		
 		if (currentFile != null)
 		{

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestBase.java	2008-05-21 15:35:56 UTC (rev 4272)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestBase.java	2008-05-21 17:42:55 UTC (rev 4273)
@@ -110,6 +110,12 @@
 		fileFactory = getFileFactory();
 	}
 	
+	protected void checkAndReclaimFiles() throws Exception
+	{
+	   journal.debugWait();
+	   journal.checkAndReclaimFiles();
+	}
+	
 	protected abstract SequentialFileFactory getFileFactory() throws Exception;
 	
 	// Private ---------------------------------------------------------------------------------
@@ -151,7 +157,7 @@
 		//We do a reclaim in here
 		if (reclaim)
 		{
-			journal.checkAndReclaimFiles();
+			checkAndReclaimFiles();
 		}
 		
 		journal.stop();      
@@ -208,6 +214,8 @@
 			
 			records.add(new RecordInfo(arguments[i], (byte)0, record, false));         
 		}
+		
+		journal.debugWait();
 	}
 	
 	protected void update(long... arguments) throws Exception
@@ -220,6 +228,8 @@
 			
 			records.add(new RecordInfo(arguments[i], (byte)0, updateRecord, true)); 
 		}
+		
+		journal.debugWait();
 	}
 	
 	protected void delete(long... arguments) throws Exception
@@ -230,6 +240,8 @@
 			
 			removeRecordsForID(arguments[i]);
 		}
+
+		journal.debugWait();
 	}
 	
 	protected void addTx(long txID, long... arguments) throws Exception
@@ -245,7 +257,9 @@
 			
 			tx.records.add(new RecordInfo(arguments[i], (byte)0, record, false));
 			
-		}     
+		}
+		
+		journal.debugWait();
 	}
 	
 	protected void updateTx(long txID, long... arguments) throws Exception
@@ -260,6 +274,7 @@
 			
 			tx.records.add(new RecordInfo(arguments[i], (byte)0, updateRecord, true));
 		}     
+      journal.debugWait();
 	}
 	
 	protected void deleteTx(long txID, long... arguments) throws Exception
@@ -273,6 +288,7 @@
 			tx.deletes.add(arguments[i]);       
 		}
 		
+      journal.debugWait();
 	}
 	
 	protected void prepare(long txID) throws Exception
@@ -292,6 +308,8 @@
 		journal.appendPrepareRecord(txID);
 		
 		tx.prepared = true;
+
+		journal.debugWait();
 	}
 	
 	protected void commit(long txID) throws Exception
@@ -306,6 +324,8 @@
 		journal.appendCommitRecord(txID);
 		
 		this.commitTx(txID);
+		
+		journal.debugWait();
 	}
 	
 	protected void rollback(long txID) throws Exception
@@ -318,6 +338,8 @@
 		}
 		
 		journal.appendRollbackRecord(txID);
+
+		journal.debugWait();
 	}
 	
 	private void commitTx(long txID)

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestUnit.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestUnit.java	2008-05-21 15:35:56 UTC (rev 4272)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestUnit.java	2008-05-21 17:42:55 UTC (rev 4273)
@@ -599,7 +599,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(initialNumberOfAddRecords/2 + 10, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		//Several of them should be reclaimed - and others deleted - the total number of files should not drop below
 		//10
@@ -627,7 +627,7 @@
 			delete(i);
 		}
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		assertEquals(0, journal.getDataFilesCount());
 		assertEquals(9, journal.getFreeFilesCount());
@@ -659,7 +659,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(0, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files2 = fileFactory.listFiles(fileExtension);
 		
@@ -693,7 +693,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(2, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files2 = fileFactory.listFiles(fileExtension);
 		
@@ -739,8 +739,6 @@
 			addTx(1, i);
 		}
 		
-		journal.debugWait();
-		
 		assertEquals(calculateNumberOfFiles(fileSize , journal.getAlignment(), 100, recordLength), journal.getDataFilesCount());
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(0, journal.getIDMapSize());
@@ -754,7 +752,7 @@
 			assertTrue(files2.contains(file));
 		}
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		//Make sure nothing reclaimed
 		
@@ -778,8 +776,6 @@
 			updateTx(1, i);
 		}
 		
-		journal.debugWait();
-		
 		assertEquals(calculateNumberOfFiles(fileSize , journal.getAlignment(), 200, recordLength), journal.getDataFilesCount());
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(0, journal.getIDMapSize());
@@ -793,7 +789,7 @@
 			assertTrue(files4.contains(file));
 		}
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		//Make sure nothing reclaimed
 		
@@ -817,8 +813,6 @@
 			deleteTx(1, i);
 		}
 		
-		journal.debugWait();
-		
 		assertEquals(calculateNumberOfFiles(fileSize , journal.getAlignment(), 200, recordLength, 200, JournalImpl.SIZE_DELETE_RECORD_TX), journal.getDataFilesCount());
 		
 		assertEquals(0, journal.getFreeFilesCount());
@@ -833,7 +827,7 @@
 			assertTrue(files7.contains(file));
 		}
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		assertEquals(calculateNumberOfFiles(fileSize , journal.getAlignment(), 200, recordLength, 200, JournalImpl.SIZE_DELETE_RECORD_TX), journal.getDataFilesCount());
 		assertEquals(0, journal.getFreeFilesCount());
@@ -893,7 +887,7 @@
 			assertTrue(files9.contains(file));
 		}
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		//Most Should now be reclaimed - leaving 10 left in total
 		
@@ -926,8 +920,6 @@
 		
 		deleteTx(1, 1);        // in file 1
 		
-		journal.debugWait();
-		
 		List<String> files2 = fileFactory.listFiles(fileExtension);
 		
 		assertEquals(2, files2.size());
@@ -973,7 +965,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(2, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files6 = fileFactory.listFiles(fileExtension);
 		
@@ -984,8 +976,7 @@
 		assertEquals(1, journal.getDataFilesCount());
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(2, journal.getIDMapSize());     
-		
-		journal.debugWait();
+
 		//Now restart
 		
 		stopJournal();
@@ -1239,8 +1230,6 @@
 		
 		addTx(1, 1);
 		
-		journal.debugWait();
-		
 		List<String> files2 = fileFactory.listFiles(fileExtension);
 		
 		assertEquals(2, files2.size());
@@ -1273,7 +1262,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(2, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		//Nothing should be reclaimed
 		
@@ -1362,7 +1351,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(2, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files6 = fileFactory.listFiles(fileExtension);
 		
@@ -1467,7 +1456,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(1, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files6 = fileFactory.listFiles(fileExtension);
 		
@@ -1573,7 +1562,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(1, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files6 = fileFactory.listFiles(fileExtension);
 		
@@ -1679,7 +1668,7 @@
 		
 		addWithSize(1024 - JournalImpl.SIZE_ADD_RECORD,3);                // in file 2
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files5 = fileFactory.listFiles(fileExtension);
 		
@@ -1689,7 +1678,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(1, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files6 = fileFactory.listFiles(fileExtension);
 		
@@ -1729,7 +1718,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(2, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files10 = fileFactory.listFiles(fileExtension);
 		
@@ -1749,7 +1738,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(3, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		List<String> files12 = fileFactory.listFiles(fileExtension);
 		
@@ -1791,7 +1780,7 @@
 		assertEquals(0, journal.getFreeFilesCount());
 		assertEquals(3, journal.getIDMapSize());
 		
-		journal.checkAndReclaimFiles();
+		checkAndReclaimFiles();
 		
 		//file 3 should now be deleted
 		




More information about the jboss-cvs-commits mailing list