Closed Wouter1 closed 10 years ago
at kill time, somewhere in the system we fetch the agents in the environment. We iterate over this list and ask the environment to free each of these agents. We call eis.freeAgent(freeAgent.getAgentName()); (LocalMessagingEnvironment:215)
This call looks all fine, agent has a good name "Carriage".
But apparently the entity already has been removed, agentToEntities is empty and we end up with the call
notifyIfFree(null, [Carriage])
It is a bit inconsistent but I assume that if agentsToEntities does not contain an entry for agent, the agent has no entitites and we can return right away.
Looks like an issue in the default implementation indeed, but it appears more logical to me to return the empty set.
The null came from a hashSet. I did not change that, there are more dependencies on that set and changing its contents may have side effects. If you want to change it that way we must allocate more time to do this.
fixed
fixed
For clarity, that call notifyIfFree and the juggling with that null set is already internally in EIS
carriage is hanging when you press kill button in GOAL. Other envs show the same problem. I do get some messages on the console