[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