![](/img/trans.png)
[英]Exception in thread “main” java.lang.IllegalMonitorStateException
[英]java.lang.IllegalMonitorStateException: Current thread is not owner of the lock
我將hazelcast 從2.4 升級到3.3,但是發生了這個異常。
13:12:51,269 [Thread-21]: ERROR xx.xx.xxThread:1783 - run:
java.lang.IllegalMonitorStateException: Current thread is not owner of the lock! -> <not-locked>
at com.hazelcast.concurrent.lock.operations.UnlockOperation.ensureUnlocked(UnlockOperation.java:71)
at com.hazelcast.concurrent.lock.operations.UnlockOperation.unlock(UnlockOperation.java:65)
at com.hazelcast.concurrent.lock.operations.UnlockOperation.run(UnlockOperation.java:57)
at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.handle(BasicOperationService.java:699)
at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.access$400(BasicOperationService.java:675)
at com.hazelcast.spi.impl.BasicOperationService$OperationPacketHandler.handle(BasicOperationService.java:649)
at com.hazelcast.spi.impl.BasicOperationService$OperationPacketHandler.handle(BasicOperationService.java:604)
at com.hazelcast.spi.impl.BasicOperationService$OperationPacketHandler.access$1400(BasicOperationService.java:591)
at com.hazelcast.spi.impl.BasicOperationService$BasicDispatcherImpl.dispatch(BasicOperationService.java:543)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.process(BasicOperationScheduler.java:439)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.doRun(BasicOperationScheduler.java:433)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.run(BasicOperationScheduler.java:408)
at ------ End remote and begin local stack-trace ------.(Unknown Source)
at com.hazelcast.spi.impl.BasicInvocationFuture.resolveApplicationResponse(BasicInvocationFuture.java:356)
at com.hazelcast.spi.impl.BasicInvocationFuture.resolveApplicationResponseOrThrowException(BasicInvocationFuture.java:289)
at com.hazelcast.spi.impl.BasicInvocationFuture.get(BasicInvocationFuture.java:181)
at com.hazelcast.spi.impl.BasicInvocationFuture.get(BasicInvocationFuture.java:160)
at com.hazelcast.spi.impl.BasicInvocationFuture.getSafely(BasicInvocationFuture.java:172)
at com.hazelcast.concurrent.lock.LockProxySupport.unlock(LockProxySupport.java:126)
at com.hazelcast.concurrent.lock.LockProxy.unlock(LockProxy.java:99)
at activesync.server.CheckLoginsThread.run(CheckLoginsThread.java:1552)
3.3中getLock的變化是新版本需要String作為參數。 我只是將它從 Object 更改為 String,沒有其他任何更改。 代碼如下:
Map logins = MyHazelcast.getMap("logins");
Lock lock = MyHazelcast.getLock("logins");
lock.lock();
try
{
// do something...
}
finally
{
lock.unlock();
}
這是由新版本引起的還是我錯過了什么?
> Current thread is not owner of the lock! -> <not-locked>
“未鎖定”表示未找到具有給定密鑰的鎖。 是否有可能在另一個地方使用帶有“登錄”鍵的鎖?
也許您在代碼中的某處釋放了鎖?
我將從這個鎖的唯一鍵名開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.