[jboss-cvs] JBoss Messaging SVN: r3473 - in trunk/src/main/org/jboss/messaging: newcore/impl/bdbje/integration/test/unit and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Dec 11 06:57:11 EST 2007


Author: timfox
Date: 2007-12-11 06:57:10 -0500 (Tue, 11 Dec 2007)
New Revision: 3473

Modified:
   trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/RealBDBJEDatabase.java
   trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/RealBDBJEEnvironment.java
   trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/test/unit/RealBDBJEEnvironmentTest.java
   trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/test/unit/BDBJEEnvironmentTestBase.java
   trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/test/unit/FakeBDBJEEnvironmentTest.java
   trunk/src/main/org/jboss/messaging/test/unit/UnitTestCase.java
Log:
A few tweaks


Modified: trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/RealBDBJEDatabase.java
===================================================================
--- trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/RealBDBJEDatabase.java	2007-12-11 07:47:42 UTC (rev 3472)
+++ trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/RealBDBJEDatabase.java	2007-12-11 11:57:10 UTC (rev 3473)
@@ -40,7 +40,6 @@
 
       if (offset != 0 || bytes.length != length)
       {
-         System.out.println("Partial, offset=" + offset);
          value.setPartial(offset, length, true);
       }
 

Modified: trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/RealBDBJEEnvironment.java
===================================================================
--- trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/RealBDBJEEnvironment.java	2007-12-11 07:47:42 UTC (rev 3472)
+++ trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/RealBDBJEEnvironment.java	2007-12-11 11:57:10 UTC (rev 3473)
@@ -257,10 +257,10 @@
 
    public List<Xid> getInDoubtXids() throws Exception
    {
-      Xid[] xids = environment.recover(XAResource.TMSTARTRSCAN);
+      Xid[] xids = environment.recover(XAResource.TMSTARTRSCAN & XAResource.TMENDRSCAN);
 
       List<Xid> list = Arrays.asList(xids);
-
+      
       return list;
    }
 

Modified: trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/test/unit/RealBDBJEEnvironmentTest.java
===================================================================
--- trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/test/unit/RealBDBJEEnvironmentTest.java	2007-12-11 07:47:42 UTC (rev 3472)
+++ trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/integration/test/unit/RealBDBJEEnvironmentTest.java	2007-12-11 11:57:10 UTC (rev 3473)
@@ -17,8 +17,6 @@
 {
    protected void setUp() throws Exception
    {   
-      System.out.println("Creating env dir");
-      
       createDir(ENV_DIR);
       
       env = createEnvironment();
@@ -43,10 +41,30 @@
    {  
       File file = new File(path);
       
-      boolean deleted = deleteDirectory(file);
+      deleteDirectory(file);
       
-      System.out.println("Deleted: " + deleted);
-      
       file.mkdir();
    }
+   
+   protected void copyEnvironment() throws Exception
+   {
+      File envCopyDir = new File(ENV_COPY_DIR);
+      
+      deleteDirectory(envCopyDir);
+      
+      copyRecursive(new File(ENV_DIR), envCopyDir);
+   }
+   
+   protected void copyBackEnvironment() throws Exception
+   {
+      File envDir = new File(ENV_DIR);
+      
+      File envCopyDir = new File(ENV_COPY_DIR);
+      
+      deleteDirectory(envDir);
+      
+      copyRecursive(envCopyDir, envDir);
+      
+      deleteDirectory(envCopyDir);
+   }    
 }

Modified: trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/test/unit/BDBJEEnvironmentTestBase.java
===================================================================
--- trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/test/unit/BDBJEEnvironmentTestBase.java	2007-12-11 07:47:42 UTC (rev 3472)
+++ trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/test/unit/BDBJEEnvironmentTestBase.java	2007-12-11 11:57:10 UTC (rev 3473)
@@ -21,6 +21,7 @@
  */
 package org.jboss.messaging.newcore.impl.bdbje.test.unit;
 
+import java.io.File;
 import java.util.List;
 
 import javax.transaction.xa.Xid;
@@ -43,8 +44,10 @@
    
    protected BDBJEDatabase database;
    
-   protected static final String ENV_DIR = "test-bdb-environment";
+   protected static final String ENV_DIR = "/home/tim/test-bdb-environment";
    
+   protected static final String ENV_COPY_DIR = "/home/tim/test-bdb-environment-copy";
+   
    protected static final String DB_NAME = "test-db";
    
    @Override
@@ -74,6 +77,10 @@
    
    protected abstract BDBJEEnvironment createEnvironment() throws Exception;
    
+   protected abstract void copyEnvironment() throws Exception;
+
+   protected abstract void copyBackEnvironment() throws Exception;
+
    // The tests ----------------------------------------------------------------
       
    public void testGetInDoubtXidsCompleteWithCommit() throws Exception
@@ -176,7 +183,7 @@
      
    }
    
-// Commented out until http://jira.jboss.org/jira/browse/JBMESSAGING-1192 is complete   
+   // Commented out until http://jira.jboss.org/jira/browse/JBMESSAGING-1192 is complete   
 //   public void testGetInDoubtXidsMultipleWithRestart() throws Exception
 //   {
 //      List<Xid> xids = env.getInDoubtXids();
@@ -214,12 +221,21 @@
 //      assertTrue(xids.contains(xid2));
 //      assertTrue(xids.contains(xid3));
 //      
+//      //Now to simulate a crash we copy the environment directory from under BDB, then close
+//      //BDB. Then start it again with the copied config.
+//      //We can't just stop the environment and restart it since on stopping cleanly BDB will abort any open
+//      //transactions
+//      
+//      copyEnvironment();
+//      
 //      database.close();
 //      
 //      env.stop();
 //      
+//      copyBackEnvironment();
+//      
 //      env.start();
-//      
+//                 
 //      database = env.getDatabase(DB_NAME);
 //      
 //      xids = env.getInDoubtXids();      
@@ -236,6 +252,7 @@
 //      assertTrue(xids.isEmpty());     
 //   }
       
+      
    public void testPutAndRemoveNonTransactional() throws Exception
    {
       byte[] bytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
@@ -356,8 +373,9 @@
       
       database.close();
       
+      //This will abort the transaction
       env.stop();
-      
+
       env.start();
       
       database = env.getDatabase(DB_NAME);

Modified: trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/test/unit/FakeBDBJEEnvironmentTest.java
===================================================================
--- trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/test/unit/FakeBDBJEEnvironmentTest.java	2007-12-11 07:47:42 UTC (rev 3472)
+++ trunk/src/main/org/jboss/messaging/newcore/impl/bdbje/test/unit/FakeBDBJEEnvironmentTest.java	2007-12-11 11:57:10 UTC (rev 3473)
@@ -22,4 +22,12 @@
    protected void createDir(String path)
    {      
    }
+   
+   protected void copyEnvironment()
+   {      
+   }
+   
+   protected void copyBackEnvironment()
+   {      
+   }    
 }

Modified: trunk/src/main/org/jboss/messaging/test/unit/UnitTestCase.java
===================================================================
--- trunk/src/main/org/jboss/messaging/test/unit/UnitTestCase.java	2007-12-11 07:47:42 UTC (rev 3472)
+++ trunk/src/main/org/jboss/messaging/test/unit/UnitTestCase.java	2007-12-11 11:57:10 UTC (rev 3473)
@@ -21,7 +21,13 @@
  */
 package org.jboss.messaging.test.unit;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -100,6 +106,57 @@
       return directory.delete();
    }
    
+   protected void copyRecursive(File from , File to) throws Exception
+   {     
+       if (from.isDirectory())
+       {
+           if (!to.exists())
+           {
+               to.mkdir();
+           }
+           
+           String[] subs = from.list();
+           
+           for (int i = 0; i < subs.length; i++)
+           {
+               copyRecursive(new File(from, subs[i]),
+                             new File(to, subs[i]));
+           }
+       }
+       else
+       {           
+           InputStream in = null;
+           
+           OutputStream out = null;
+                      
+           try
+           {           
+              in = new BufferedInputStream(new FileInputStream(from));              
+              
+              out = new BufferedOutputStream(new FileOutputStream(to));
+              
+              int b;
+              
+              while ((b = in.read()) != -1)
+              {
+                  out.write(b);
+              }
+           }
+           finally
+           {   
+              if (in != null)
+              {
+                 in.close();
+              }
+              
+              if (out != null)
+              {
+                 out.close();
+              }
+           }
+       }
+   }
+   
    protected void assertRefListsIdenticalRefs(List<MessageReference> l1, List<MessageReference> l2)
    {
       if (l1.size() != l2.size())




More information about the jboss-cvs-commits mailing list