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

Reply via email to