diff options
author | Thomas Nelson <tn1381@att.com> | 2018-03-14 00:39:39 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2018-03-14 00:39:39 +0000 |
commit | ed32276d7d097fb9b53c930133f86a99db6a35dc (patch) | |
tree | 0653a737c496a197d4e373245b5a490a40cdc3b0 /src/main/java/org/onap/music/lockingservice | |
parent | 0193eb29ad8bdbd4491afc7f32ce8362898e2ded (diff) | |
parent | 3c86680e532b959bd637b6c093b3916ae5bcee11 (diff) |
Merge "Docker update and POM fix"
Diffstat (limited to 'src/main/java/org/onap/music/lockingservice')
3 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/org/onap/music/lockingservice/MusicLockState.java b/src/main/java/org/onap/music/lockingservice/MusicLockState.java index 5d051be4..6c31410f 100644 --- a/src/main/java/org/onap/music/lockingservice/MusicLockState.java +++ b/src/main/java/org/onap/music/lockingservice/MusicLockState.java @@ -45,6 +45,12 @@ public class MusicLockState implements Serializable { boolean needToSyncQuorum = false; String lockHolder; long leasePeriod = Long.MAX_VALUE, leaseStartTime = -1; + + private String errorMessage = null; + + public MusicLockState(String errorMessage) { + this.errorMessage = errorMessage; + } public MusicLockState(LockStatus lockStatus, String lockHolder) { this.lockStatus = lockStatus; @@ -100,6 +106,10 @@ public class MusicLockState implements Serializable { this.lockHolder = lockHolder; } + public String getErrorMessage() { + return errorMessage; + } + public byte[] serialize() { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutput out = null; diff --git a/src/main/java/org/onap/music/lockingservice/MusicLockingService.java b/src/main/java/org/onap/music/lockingservice/MusicLockingService.java index 2fc8a151..44a00bcf 100644 --- a/src/main/java/org/onap/music/lockingservice/MusicLockingService.java +++ b/src/main/java/org/onap/music/lockingservice/MusicLockingService.java @@ -128,7 +128,7 @@ public class MusicLockingService implements Watcher { return false; } - public void unlockAndDeleteId(String lockIdWithDollar) { + public void unlockAndDeleteId(String lockIdWithDollar) throws KeeperException.NoNodeException { String lockId = lockIdWithDollar.replace('$', '/'); zkLockHandle.unlock(lockId); } diff --git a/src/main/java/org/onap/music/lockingservice/ZkStatelessLockService.java b/src/main/java/org/onap/music/lockingservice/ZkStatelessLockService.java index 51efafbf..e99df255 100644 --- a/src/main/java/org/onap/music/lockingservice/ZkStatelessLockService.java +++ b/src/main/java/org/onap/music/lockingservice/ZkStatelessLockService.java @@ -23,6 +23,7 @@ import java.util.SortedSet; import java.util.TreeSet; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; +import org.apache.zookeeper.KeeperException.NoNodeException; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.data.ACL; @@ -157,8 +158,9 @@ public class ZkStatelessLockService extends ProtocolSupport { * your request in the queue for locking in case you do not already hold the lock. * * @throws RuntimeException throws a runtime exception if it cannot connect to zookeeper. + * @throws NoNodeException */ - public synchronized void unlock(String lockId) throws RuntimeException { + public synchronized void unlock(String lockId) throws RuntimeException, KeeperException.NoNodeException { final String id = lockId; if (!isClosed() && id != null) { try { @@ -175,6 +177,7 @@ public class ZkStatelessLockService extends ProtocolSupport { Thread.currentThread().interrupt(); } catch (KeeperException.NoNodeException e) { // do nothing + throw new KeeperException.NoNodeException("Lock doesn't exists. Release lock operation failed."); } catch (KeeperException e) { logger.error(EELFLoggerDelegate.errorLogger, e.getMessage(),AppMessages.KEEPERERROR, ErrorSeverity.ERROR, ErrorTypes.LOCKINGERROR); throw (RuntimeException) new RuntimeException(e.getMessage()).initCause(e); |