From d574429daac3396a0ca8bfb70780106fce77b61a Mon Sep 17 00:00:00 2001
From: kaloyane <kaloyane>
Date: Fri, 5 Aug 2011 13:09:39 +0000
Subject: [PATCH] bugfix: different transaction created in the same millisecond
 should use different rollback stacks files

SVN: 22351
---
 .../api/v1/impl/DataSetRegistrationTransaction.java          | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
index 0d2dc5f380e..ef4b57e1565 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
@@ -20,6 +20,7 @@ import java.io.File;
 import java.io.FilenameFilter;
 import java.util.Date;
 import java.util.List;
+import java.util.Random;
 
 import net.lemnik.eodsql.DynamicTransactionQuery;
 
@@ -127,9 +128,11 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
      */
     private static RollbackStack createNewRollbackStack(File rollBackStackParentFolder)
     {
+        // Add a random number to the prefix to distinguish between rollback stacks created in the
+        // same millisecond.
         String fileNamePrefix =
                 DateFormatUtils.format(new Date(), ROLLBACK_STACK_FILE_NAME_DATE_FORMAT_PATTERN)
-                        + "-";
+                        + "-" + new Random().nextInt(10000) + "-";
         return new RollbackStack(new File(rollBackStackParentFolder, fileNamePrefix
                 + ROLLBACK_QUEUE1_FILE_NAME_SUFFIX), new File(rollBackStackParentFolder,
                 fileNamePrefix + ROLLBACK_QUEUE2_FILE_NAME_SUFFIX));
-- 
GitLab