diff options
author | 2018-12-19 22:31:11 -0500 | |
---|---|---|
committer | 2018-12-22 15:07:11 -0500 | |
commit | 4f0f883f3781e291fd10ad485efd5f850052cb66 (patch) | |
tree | 1e57c1362de91c0a13592699f8a4b0e219878dba /src/main/java/org/onap/music/lockingservice/cassandra | |
parent | 71336645ddc340487ca2dc0053e46a6387b4e542 (diff) |
Add retry logic for acquireLock in atomicPut
acquireLock might fail right after generating a
new lock reference because we are not making a SERIAL get.
atomicPut should keep retrying until it acquires the lock.
Change-Id: I7b0f85a0d0229e28a56cdd41ec69fcde8d8398fe
Issue-ID: MUSIC-148
Signed-off-by: Mohammad Salehe <salehe@cs.toronto.edu>
Diffstat (limited to 'src/main/java/org/onap/music/lockingservice/cassandra')
-rw-r--r-- | src/main/java/org/onap/music/lockingservice/cassandra/CassaLockStore.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/org/onap/music/lockingservice/cassandra/CassaLockStore.java b/src/main/java/org/onap/music/lockingservice/cassandra/CassaLockStore.java index 51a78264..58163a8f 100644 --- a/src/main/java/org/onap/music/lockingservice/cassandra/CassaLockStore.java +++ b/src/main/java/org/onap/music/lockingservice/cassandra/CassaLockStore.java @@ -201,7 +201,7 @@ public class CassaLockStore { * @param keyspace of the application. * @param table of the application. * @param key is the primary key of the application table - * @return the UUID lock reference. + * @return the lock reference. * @throws MusicServiceException * @throws MusicQueryException */ @@ -217,11 +217,13 @@ public class CassaLockStore { queryObject.appendQueryString(selectQuery); ResultSet results = dsHandle.executeOneConsistencyGet(queryObject); Row row = results.one(); + if (row == null) + return null; String lockReference = "" + row.getLong("lockReference"); String createTime = row.getString("createTime"); String acquireTime = row.getString("acquireTime"); - return new LockObject(lockReference, createTime,acquireTime); + return new LockObject(lockReference, createTime, acquireTime); } finally { TimeMeasureInstance.instance().exit(); |