[jboss-svn-commits] JBL Code SVN: r36568 - in labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats: internal/arjuna/objectstore and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jan 24 09:01:43 EST 2011


Author: jhalliday
Date: 2011-01-24 09:01:43 -0500 (Mon, 24 Jan 2011)
New Revision: 36568

Modified:
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/ObjectStoreEnvironmentBean.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java
Log:
Add configurable exclusion of zero length files in recovery scans. JBTM-821


Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/ObjectStoreEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/ObjectStoreEnvironmentBean.java	2011-01-24 09:04:25 UTC (rev 36567)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/ObjectStoreEnvironmentBean.java	2011-01-24 14:01:43 UTC (rev 36568)
@@ -43,6 +43,8 @@
     private volatile int hashedDirectories = HashedStore.DEFAULT_NUMBER_DIRECTORIES;
     private volatile boolean transactionSync = true;
 
+    private volatile boolean scanZeroLengthFiles = false;
+
     private volatile int share = StateType.OS_UNSHARED;
     private volatile int hierarchyRetry = 100;
     private volatile int hierarchyTimeout = 100;
@@ -352,6 +354,28 @@
     }
 
     /**
+     * Returns true if zero length files should be returned by a recovery scan.
+     *
+     * Default: false
+     *
+     * @return true if scan results should include zero length files, false if they should be excluded.
+     */
+    public boolean isScanZeroLengthFiles()
+    {
+        return scanZeroLengthFiles;
+    }
+
+    /**
+     * Sets if zero length files should be returned by a recovery scan.
+     *
+     * @param scanZeroLengthFiles true to include zero length files in scan results, false to exclude them.
+     */
+    public void setScanZeroLengthFiles(boolean scanZeroLengthFiles)
+    {
+        this.scanZeroLengthFiles = scanZeroLengthFiles;
+    }
+
+    /**
      * Returns the share mode for the ObjectStore, i.e., is this being shared
      * between VMs?
      *

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java	2011-01-24 09:04:25 UTC (rev 36567)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java	2011-01-24 14:01:43 UTC (rev 36568)
@@ -197,7 +197,9 @@
                         if ((aUid.notEquals(Uid.nullUid())) && ((match == StateStatus.OS_UNKNOWN) ||
                                 (isType(aUid, tName, match))))
                         {
-                            UidHelper.packInto(aUid, store);
+                            if(scanZeroLengthFiles || new File(f, entry[i]).length() > 0) {
+                                UidHelper.packInto(aUid, store);
+                            }
                         }
                     }
                 }
@@ -472,6 +474,8 @@
 
         doSync = objectStoreEnvironmentBean.isObjectStoreSync();
 
+        scanZeroLengthFiles = objectStoreEnvironmentBean.isScanZeroLengthFiles();
+
         /* The root of the objectstore must exist and be writable */
 
         if ((fullStoreName == null) || !createHierarchy(fullStoreName)) {
@@ -766,6 +770,8 @@
     private static int       createRetry = 100;
     private static int       createTimeout = 100;
 
+    protected boolean scanZeroLengthFiles = false;
+
     static
     {
         if (File.separatorChar != FileSystemStore.unixSeparator)

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java	2011-01-24 09:04:25 UTC (rev 36567)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java	2011-01-24 14:01:43 UTC (rev 36568)
@@ -132,7 +132,9 @@
                                 if ((aUid.notEquals(Uid.nullUid())) && ((match == StateStatus.OS_UNKNOWN) ||
                                     (isType(aUid, tName, match))))
                                 {
-                                    UidHelper.packInto(aUid, store);
+                                    if(scanZeroLengthFiles || new File(dir, dirEnt[j]).length() > 0) {
+                                        UidHelper.packInto(aUid, store);
+                                    }
                                 }
                             }
                             catch (NumberFormatException e)



More information about the jboss-svn-commits mailing list