Search in sources :

Example 6 with ILock

use of com.hazelcast.core.ILock in project hazelcast by hazelcast.

the class ClientLockTest method testObtainLock_FromDifferentClients.

@Test
public void testObtainLock_FromDifferentClients() throws InterruptedException {
    factory.newHazelcastInstance();
    String name = randomName();
    HazelcastInstance clientA = factory.newHazelcastClient();
    ILock lockA = clientA.getLock(name);
    lockA.lock();
    HazelcastInstance clientB = factory.newHazelcastClient();
    ILock lockB = clientB.getLock(name);
    boolean lockObtained = lockB.tryLock();
    assertFalse("Lock obtained by 2 client ", lockObtained);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) ILock(com.hazelcast.core.ILock) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 7 with ILock

use of com.hazelcast.core.ILock in project hazelcast by hazelcast.

the class ClientLockTest method testTryLockLeaseTime_whenLockFree.

@Test(timeout = 60000)
public void testTryLockLeaseTime_whenLockFree() throws InterruptedException {
    factory.newHazelcastInstance();
    HazelcastInstance hz = factory.newHazelcastClient();
    final ILock lock = hz.getLock(randomName());
    boolean isLocked = lock.tryLock(1000, TimeUnit.MILLISECONDS, 1000, TimeUnit.MILLISECONDS);
    assertTrue(isLocked);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) ILock(com.hazelcast.core.ILock) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 8 with ILock

use of com.hazelcast.core.ILock in project hazelcast by hazelcast.

the class ClientLockTest method testTryLock.

@Test
public void testTryLock() throws Exception {
    factory.newHazelcastInstance();
    HazelcastInstance hz = factory.newHazelcastClient();
    final ILock lock = hz.getLock(randomName());
    assertTrue(lock.tryLock(2, TimeUnit.SECONDS));
    final CountDownLatch latch = new CountDownLatch(1);
    new Thread() {

        public void run() {
            try {
                if (!lock.tryLock(2, TimeUnit.SECONDS)) {
                    latch.countDown();
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }.start();
    assertTrue(latch.await(100, TimeUnit.SECONDS));
    assertTrue(lock.isLocked());
    final CountDownLatch latch2 = new CountDownLatch(1);
    new Thread() {

        public void run() {
            try {
                if (lock.tryLock(20, TimeUnit.SECONDS)) {
                    latch2.countDown();
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }.start();
    Thread.sleep(1000);
    lock.unlock();
    assertTrue(latch2.await(100, TimeUnit.SECONDS));
    assertTrue(lock.isLocked());
    lock.forceUnlock();
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) ILock(com.hazelcast.core.ILock) CountDownLatch(java.util.concurrent.CountDownLatch) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 9 with ILock

use of com.hazelcast.core.ILock in project hazelcast by hazelcast.

the class ClientLockTest method testLockWithZeroTTL.

@Test(expected = IllegalArgumentException.class)
public void testLockWithZeroTTL() {
    factory.newHazelcastInstance();
    HazelcastInstance hz = factory.newHazelcastClient();
    final ILock lock = hz.getLock(randomName());
    final long ttl = 0;
    lock.lock(ttl, TimeUnit.MILLISECONDS);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) ILock(com.hazelcast.core.ILock) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 10 with ILock

use of com.hazelcast.core.ILock in project hazelcast by hazelcast.

the class ClientLockTest method testTryLockwithZeroTTLWithExistingLock.

@Test
public void testTryLockwithZeroTTLWithExistingLock() throws Exception {
    factory.newHazelcastInstance();
    HazelcastInstance hz = factory.newHazelcastClient();
    final ILock lock = hz.getLock(randomName());
    lock.lock();
    final CountDownLatch latch = new CountDownLatch(1);
    new Thread() {

        public void run() {
            try {
                if (!lock.tryLock(0, TimeUnit.SECONDS)) {
                    latch.countDown();
                }
            } catch (InterruptedException e) {
            }
        }
    }.start();
    assertOpenEventually(latch);
    lock.forceUnlock();
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) ILock(com.hazelcast.core.ILock) CountDownLatch(java.util.concurrent.CountDownLatch) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Aggregations

ILock (com.hazelcast.core.ILock)77 Test (org.junit.Test)71 ParallelTest (com.hazelcast.test.annotation.ParallelTest)44 QuickTest (com.hazelcast.test.annotation.QuickTest)44 HazelcastInstance (com.hazelcast.core.HazelcastInstance)43 CountDownLatch (java.util.concurrent.CountDownLatch)37 ICondition (com.hazelcast.core.ICondition)33 TestHazelcastInstanceFactory (com.hazelcast.test.TestHazelcastInstanceFactory)20 Config (com.hazelcast.config.Config)11 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)9 AssertTask (com.hazelcast.test.AssertTask)7 TestThread (com.hazelcast.test.TestThread)6 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)6 HazelcastInstanceNotActiveException (com.hazelcast.core.HazelcastInstanceNotActiveException)3 IOException (java.io.IOException)3 ClientConfig (com.hazelcast.client.config.ClientConfig)2 OperationTimeoutException (com.hazelcast.core.OperationTimeoutException)2 Data (com.hazelcast.nio.serialization.Data)2 TimeoutException (java.util.concurrent.TimeoutException)2 InternalLockNamespace (com.hazelcast.concurrent.lock.InternalLockNamespace)1