From 1521b6b76fc92f40f3613c29eb5f194efa5a50ca Mon Sep 17 00:00:00 2001 From: Brian Remmington Date: Mon, 30 Sep 2013 11:52:50 +0000 Subject: [PATCH] Fixes ALF-19964: Breaking API change in JobLockService.releaseLock - Reverted releaseLock to return void - Added "releaseLockVerify" that returns boolean git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@56164 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repo/lock/JobLockService.java | 17 +++++++++++++++-- .../alfresco/repo/lock/JobLockServiceImpl.java | 10 +++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/source/java/org/alfresco/repo/lock/JobLockService.java b/source/java/org/alfresco/repo/lock/JobLockService.java index 151f1362a1..bed6c43d9b 100644 --- a/source/java/org/alfresco/repo/lock/JobLockService.java +++ b/source/java/org/alfresco/repo/lock/JobLockService.java @@ -171,14 +171,27 @@ public interface JobLockService /** * Release the lock using a valid lock token. The lock can have expired or even been taken * by another processes (i.e. the lock token will no longer be valid); none of this will - * prevent the method from succeeding. + * prevent the method from succeeding. This operation is functionally the same as the newer + * {@link #releaseLockVerify(String, QName)} operation, other than it returns void. Retained + * for backwards-compatibility. + * + * @param lockToken the lock token returned when the lock was acquired + * @param lockQName the name of the previously-acquired lock + */ + void releaseLock(String lockToken, QName lockQName); + + /** + * Release the lock using a valid lock token. The lock can have expired or even been taken + * by another processes (i.e. the lock token will no longer be valid); none of this will + * prevent the method from succeeding. Functionally similar to {@link #releaseLock(String, QName)}, but + * this newer operation indicates whether a lock was actually released by its return value. * * @param lockToken the lock token returned when the lock was acquired * @param lockQName the name of the previously-acquired lock * @return true if the lock was valid and released otherwise * false if the lock was no longer valid in any case */ - boolean releaseLock(String lockToken, QName lockQName); + boolean releaseLockVerify(String lockToken, QName lockQName); /** * Interface for implementations that need a timed callback in order to refresh the lock. diff --git a/source/java/org/alfresco/repo/lock/JobLockServiceImpl.java b/source/java/org/alfresco/repo/lock/JobLockServiceImpl.java index 390a92b042..be94db3738 100644 --- a/source/java/org/alfresco/repo/lock/JobLockServiceImpl.java +++ b/source/java/org/alfresco/repo/lock/JobLockServiceImpl.java @@ -419,7 +419,15 @@ public class JobLockServiceImpl implements JobLockService /** * {@inheritDoc} */ - public boolean releaseLock(final String lockToken, final QName lockQName) + public void releaseLock(final String lockToken, final QName lockQName) + { + releaseLockVerify(lockToken, lockQName); + } + + /** + * {@inheritDoc} + */ + public boolean releaseLockVerify(final String lockToken, final QName lockQName) { RetryingTransactionCallback releaseCallback = new RetryingTransactionCallback() {