Ate Douma pushed to branch feature/REPO-1873 at cms-community / hippo-repository
Commits: dd8fe109 by Ate Douma at 2017-11-01T15:12:53+01:00 REPO-1874 rework after review: replace getHoldCount() with isNewLock() which is more functional and not exposing confusing internal logic - - - - - b5e2bdf1 by Ate Douma at 2017-11-01T15:13:17+01:00 Merge remote-tracking branch 'origin/feature/REPO-1873' into feature/REPO-1873 - - - - - 2 changed files: - engine/src/main/java/org/hippoecm/repository/quartz/JCRJobStore.java - engine/src/main/java/org/onehippo/repository/lock/AbstractLockManager.java Changes: ===================================== engine/src/main/java/org/hippoecm/repository/quartz/JCRJobStore.java ===================================== --- a/engine/src/main/java/org/hippoecm/repository/quartz/JCRJobStore.java +++ b/engine/src/main/java/org/hippoecm/repository/quartz/JCRJobStore.java @@ -817,12 +817,12 @@ public class JCRJobStore implements JobStore { // this thread *may* already have locked the triggerNode before (pending trigger execution), therefore // we need to check and prevent not locking it multiple times (as unlock will *not* be called multiple times) final LockResource lockResource = lockManager.lock(key); - if (lockResource.getHoldCount() > 1) { + if (lockResource.isNewLock()) { + return lockResource; + } else { // already locked (by this thread) before, release the (nested) lock and return null lockResource.close(); return null; - } else { - return lockResource; } } catch (AlreadyLockedException e) { return null; ===================================== engine/src/main/java/org/onehippo/repository/lock/AbstractLockManager.java ===================================== --- a/engine/src/main/java/org/onehippo/repository/lock/AbstractLockManager.java +++ b/engine/src/main/java/org/onehippo/repository/lock/AbstractLockManager.java @@ -102,12 +102,12 @@ public abstract class AbstractLockManager implements InternalLockManager { private class LockResourceImpl implements LockResource { private final MutableLock lock; - private final int holdCount; + private final boolean newLock; private boolean closed = false; LockResourceImpl(final MutableLock lock) { this.lock = lock; - this.holdCount = lock.getHoldCount(); + this.newLock = lock.getHoldCount() == 1; } @Override @@ -129,13 +129,13 @@ public abstract class AbstractLockManager implements InternalLockManager { } @Override - public Thread getHolder() { - return lock.getThread().get(); + public boolean isNewLock() { + return newLock; } @Override - public int getHoldCount() { - return holdCount; + public Thread getHolder() { + return lock.getThread().get(); } } View it on GitLab: https://code.onehippo.org/cms-community/hippo-repository/compare/e20515871aae1a9e7790b14b0b788dbd318e0388...b5e2bdf14cf1cd8c3bf160096da454e8b38b16e6 --- View it on GitLab: https://code.onehippo.org/cms-community/hippo-repository/compare/e20515871aae1a9e7790b14b0b788dbd318e0388...b5e2bdf14cf1cd8c3bf160096da454e8b38b16e6 You're receiving this email because of your account on code.onehippo.org.
_______________________________________________ Hippocms-svn mailing list Hippocms-svn@lists.onehippo.org https://lists.onehippo.org/mailman/listinfo/hippocms-svn