Class VerifyingLockFactory


  • public class VerifyingLockFactory
    extends LockFactory
    A LockFactory that wraps another LockFactory and verifies that each lock obtain/release is "correct" (never results in two processes holding the lock at the same time). It does this by contacting an external server (LockVerifyServer) to assert that at most one process holds the lock at a time. To use this, you should also run LockVerifyServer on the host & port matching what you pass to the constructor.
    See Also:
    LockVerifyServer, LockStressTest
    • Constructor Detail

      • VerifyingLockFactory

        public VerifyingLockFactory​(byte id,
                                    LockFactory lf,
                                    String host,
                                    int port)
        Parameters:
        id - should be a unique id across all clients
        lf - the LockFactory that we are testing
        host - host or IP where LockVerifyServer is running
        port - the port LockVerifyServer is listening on
    • Method Detail

      • makeLock

        public Lock makeLock​(String lockName)
        Description copied from class: LockFactory
        Return a new Lock instance identified by lockName.
        Specified by:
        makeLock in class LockFactory
        Parameters:
        lockName - name of the lock to be created.
      • clearLock

        public void clearLock​(String lockName)
                       throws IOException
        Description copied from class: LockFactory
        Attempt to clear (forcefully unlock and remove) the specified lock. Only call this at a time when you are certain this lock is no longer in use.
        Specified by:
        clearLock in class LockFactory
        Parameters:
        lockName - name of the lock to be cleared.
        Throws:
        IOException