From e4e88093c694ef8690e80cde579be8fda4b93e76 Mon Sep 17 00:00:00 2001 From: alena Date: Fri, 7 Oct 2011 09:52:49 -0700 Subject: [PATCH] Fixed the bug in random seq allocator code - always do "+1" because .netxInt(10) method can return 0, and the id in this case will be equal the id already present in the DB. --- utils/src/com/cloud/utils/db/SequenceFetcher.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/src/com/cloud/utils/db/SequenceFetcher.java b/utils/src/com/cloud/utils/db/SequenceFetcher.java index 9148f372831..33449bcb4ad 100644 --- a/utils/src/com/cloud/utils/db/SequenceFetcher.java +++ b/utils/src/com/cloud/utils/db/SequenceFetcher.java @@ -47,6 +47,7 @@ import com.cloud.utils.concurrency.NamedThreadFactory; public class SequenceFetcher { private final static Logger s_logger = Logger.getLogger(SequenceFetcher.class); ExecutorService _executors; + private final static Random random = new Random(); public T getNextSequence(Class clazz, TableGenerator tg) { return getNextSequence(clazz, tg, null, false); @@ -115,8 +116,7 @@ public class SequenceFetcher { PreparedStatement updateStmt = txn.prepareStatement(sql.toString()); if(isRandom){ - Random random = new Random(); - updateStmt.setInt(2, random.nextInt(10)); + updateStmt.setInt(2, random.nextInt(10) + 1); } else { updateStmt.setInt(2, _tg.allocationSize()); }