Как правильно остановить MAS в JaCaMo?

У меня есть проект 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?


person Cleber Jorge Amaral    schedule 25.10.2017    source источник


Ответы (1)


Вы можете просто проигнорировать это сообщение. Последняя версия JaCaMo (0.7-SNAPSHOT) устраняет эту проблему.

person Jomi Hubner    schedule 25.10.2017