我有一个 JaCaMo 项目,我想在添加相信时停止系统,如下所示:
+winner <- .stopMAS.
我在一个纯 Jason 项目中这样做,但是在我有一个组织的这个 JaCaMo 项目中,在这个 stopMAS 命令之后,CArtAgO API 中出现如下错误:
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedSynchronizer.java:1220)
at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:335)
at java.util.concurrent.ArrayBlockingQueue.put(ArrayBlockingQueue.java:350)
at cartago.WorkspaceKernel.execOp(WorkspaceKernel.java:782)
at cartago.WorkspaceKernel.execOp(WorkspaceKernel.java:600)
at cartago.AgentBody.doAction(AgentBody.java:72)
at cartago.CartagoSession.doAction(CartagoSession.java:86)
at jacamo.infra.JaCaMoAgArch.stop(JaCaMoAgArch.java:198)
at jason.architecture.AgArch.stop(AgArch.java:57)
at jason.infra.centralised.CentralisedAgArch.stopAg(CentralisedAgArch.java:113)
at jason.infra.centralised.RunCentralisedMAS.stopAgs(RunCentralisedMAS.java:728)
at jason.infra.centralised.RunCentralisedMAS.finish(RunCentralisedMAS.java:826)
at jason.infra.centralised.CentralisedRuntimeServices.stopMAS(CentralisedRuntimeServices.java:110)
at jason.stdlib.stopMAS.execute(stopMAS.java:44)
at jason.asSemantics.TransitionSystem.applyExecInt(TransitionSystem.java:736)
at jason.asSemantics.TransitionSystem.applySemanticRuleAct(TransitionSystem.java:237)
at jason.asSemantics.TransitionSystem.act(TransitionSystem.java:1525)
at jason.infra.centralised.CentralisedAgArch.act(CentralisedAgArch.java:203)
at jason.infra.centralised.CentralisedAgArch.reasoningCycle(CentralisedAgArch.java:212)
at jason.infra.centralised.CentralisedAgArch.run(CentralisedAgArch.java:231)
at java.lang.Thread.run(Thread.java:748)
cartago.CartagoException: exec op exception.
at cartago.WorkspaceKernel.execOp(WorkspaceKernel.java:786)
at cartago.WorkspaceKernel.execOp(WorkspaceKernel.java:600)
at cartago.AgentBody.doAction(AgentBody.java:72)
at cartago.CartagoSession.doAction(CartagoSession.java:86)
at jacamo.infra.JaCaMoAgArch.stop(JaCaMoAgArch.java:198)
at jason.architecture.AgArch.stop(AgArch.java:57)
at jason.infra.centralised.CentralisedAgArch.stopAg(CentralisedAgArch.java:113)
at jason.infra.centralised.RunCentralisedMAS.stopAgs(RunCentralisedMAS.java:728)
at jason.infra.centralised.RunCentralisedMAS.finish(RunCentralisedMAS.java:826)
at jason.infra.centralised.CentralisedRuntimeServices.stopMAS(CentralisedRuntimeServices.java:110)
at jason.stdlib.stopMAS.execute(stopMAS.java:44)
at jason.asSemantics.TransitionSystem.applyExecInt(TransitionSystem.java:736)
at jason.asSemantics.TransitionSystem.applySemanticRuleAct(TransitionSystem.java:237)
at jason.asSemantics.TransitionSystem.act(TransitionSystem.java:1525)
at jason.infra.centralised.CentralisedAgArch.act(CentralisedAgArch.java:203)
at jason.infra.centralised.CentralisedAgArch.reasoningCycle(CentralisedAgArch.java:212)
at jason.infra.centralised.CentralisedAgArch.run(CentralisedAgArch.java:231)
at java.lang.Thread.run(Thread.java:748)
[GroupBoard] p1 has quit, role participant removed by the platform!
如何避免这个错误?在这个 stopMAS 命令之前我应该做些什么吗?