|
|
@ -836,19 +836,20 @@ public class RedissonTopicTest {
|
|
|
|
|
|
|
|
|
|
|
|
AtomicBoolean exceptionDetected = new AtomicBoolean(false);
|
|
|
|
AtomicBoolean exceptionDetected = new AtomicBoolean(false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Deque<String> status = new ConcurrentLinkedDeque<>();
|
|
|
|
Runnable rLockPayload =
|
|
|
|
Runnable rLockPayload =
|
|
|
|
() -> {
|
|
|
|
() -> {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
Integer randomLock = ThreadLocalRandom.current().nextInt(100);
|
|
|
|
Integer randomLock = ThreadLocalRandom.current().nextInt(100);
|
|
|
|
RLock lock = redisson.getLock(randomLock.toString());
|
|
|
|
RLock lock = redisson.getLock(randomLock.toString());
|
|
|
|
try {
|
|
|
|
lock.lock(10, TimeUnit.SECONDS);
|
|
|
|
lock.lock(10, TimeUnit.SECONDS);
|
|
|
|
lock.unlock();
|
|
|
|
} finally {
|
|
|
|
status.add("ok");
|
|
|
|
if (lock != null && lock.isHeldByCurrentThread()) {
|
|
|
|
|
|
|
|
lock.unlock();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
status.add("failed");
|
|
|
|
|
|
|
|
if (e.getCause().getMessage().contains("slaves were synced")) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
exceptionDetected.set(true);
|
|
|
|
exceptionDetected.set(true);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -883,8 +884,9 @@ public class RedissonTopicTest {
|
|
|
|
Thread.sleep(java.time.Duration.ofSeconds(10).toMillis());
|
|
|
|
Thread.sleep(java.time.Duration.ofSeconds(10).toMillis());
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(exceptionDetected.get()).isFalse();
|
|
|
|
assertThat(exceptionDetected.get()).isFalse();
|
|
|
|
|
|
|
|
assertThat(status.peekLast()).isEqualTo("ok");
|
|
|
|
|
|
|
|
|
|
|
|
executor1.shutdownNow();
|
|
|
|
executor1.shutdown();
|
|
|
|
|
|
|
|
|
|
|
|
redisson.shutdown();
|
|
|
|
redisson.shutdown();
|
|
|
|
sentinel1.stop();
|
|
|
|
sentinel1.stop();
|
|
|
|